源程序:
class WaterSource{
pravite String s;
WaterSource(){
System.out.println("WaterSource");
s=new String("constructed");
}
public String toString(){return s;}
}
public class SprinklerSystem{
pravite String valve1,valve2,valve3,valve4;
WaterSource;
int i;
float f;
void print(){
System.out.println("valve1="+valve1);
System.out.println("valve2="+valve2);
System.out.println("valve3="+valve3);
System.out.println("valve4="+valve4);
System.out.println("i="+i);
System.out.println("f="+f);
System.out.println("source="+source);
}
public static void main(String[] args){
SprinklerSystem x=new SprinklerSystem ;
x.print();
}
}
WaterSource内定义的一个方法是比较特殊的:toString().大家不久就会知道,每种非基本对象都有一个toString()方法。若编译器本来希望一个string,但却获得某个这样的对象,就会调用这个方法。所以下面这个表达式中:
Syatem.out.println("source"+source);
编译器就会发现我们试图向一个WaterSource添加一个String对象("source=")。这对它来说是不可接受的,因为我们只能将一个字串“添加”到另一个字串,所以它说:“我要调用toString,把source转换成字串!”经过这样的处理后,它就能编译两个字串,并将结果字串传递给一个System.out.println()。每次随同自己创建的一个类允许这种行为的时候,都只需要写一个toString()方法。请问:什么是非基本类型的对象啊?
为什么要用到toString()的方法啊?
谢谢!!
class WaterSource{
pravite String s;
WaterSource(){
System.out.println("WaterSource");
s=new String("constructed");
}
public String toString(){return s;}
}
public class SprinklerSystem{
pravite String valve1,valve2,valve3,valve4;
WaterSource;
int i;
float f;
void print(){
System.out.println("valve1="+valve1);
System.out.println("valve2="+valve2);
System.out.println("valve3="+valve3);
System.out.println("valve4="+valve4);
System.out.println("i="+i);
System.out.println("f="+f);
System.out.println("source="+source);
}
public static void main(String[] args){
SprinklerSystem x=new SprinklerSystem ;
x.print();
}
}
WaterSource内定义的一个方法是比较特殊的:toString().大家不久就会知道,每种非基本对象都有一个toString()方法。若编译器本来希望一个string,但却获得某个这样的对象,就会调用这个方法。所以下面这个表达式中:
Syatem.out.println("source"+source);
编译器就会发现我们试图向一个WaterSource添加一个String对象("source=")。这对它来说是不可接受的,因为我们只能将一个字串“添加”到另一个字串,所以它说:“我要调用toString,把source转换成字串!”经过这样的处理后,它就能编译两个字串,并将结果字串传递给一个System.out.println()。每次随同自己创建的一个类允许这种行为的时候,都只需要写一个toString()方法。请问:什么是非基本类型的对象啊?
为什么要用到toString()的方法啊?
谢谢!!
"类全名@hashCode()"
其他的都是基本类型,即int,float,boolean,char,double,long,byte