JAVA基础问题 本人初学 谢谢各位不要笑话

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:38:51
Cat c = new Cat("mm") 这句话中 cat() 是一个类 而Cat("mm") mm是什么意思啊 要是System.out.print(c); 输出对象的时候为什么要调用toString()方法呢??
为什么不能输出对象呢
public class Er implements bb {
public static void main(String[] args) {
Cat c = new Cat("mm");//形参 类型 方法(形参){方法体}
System.out.println(c);
String s = "@@@";
s = s + c;
System.out.println(s);
}
}
class Cat {
String name;
String sex;
public Cat(String sex) {
this.sex = sex;//这里的this.s是说s是这个类的变量而不是形参

//形参是个纽带
}
public String toString() {
return "This is a cat. Name is " +sex;
}

}
这是程序 请高手详细点讲解 非常感谢

首先,你的类Cat中有带参数的构造器,所以初始化时用Cat c = new Cat("mm");可以将mm作为sex的实例传入,而输出时,当输出的是内容为一个对象时,会自动调用这个对象的toString()方法,因为任何一个对象都是从Object继承来的,都有toString()方法。你这个程序重写了toString()方法,可以按照你的新要求输出,否则会默认调用继承来的toString()

mm是你传入的实参啊,因为构造方法中public Cat(String sex)定义了形参

当然可以直接输出对象,可结果却无法描述对象的相关信息,而通过重写 public String toString() 方法,可以输出对象的相关信息

面向对象听过吧 楼主这句话的意思是从抽象的类中实例化一只小猫,
System.out.print(c) 这是打印的意思,但是你的小猫没有可打印的东西 你可以给你的小猫在写个叫的方法 这样就行了

其实,我才是初学。

上面的程序我完全不懂。