JAVA高手帮忙解释下

来源:百度知道 编辑:UC知道 时间:2024/06/19 13:43:07
class Soap{
private String s;
Soap(){
System.out.println("Soap()");
s="Constracted";

}
public String toString(){return s;}

}
public class Bath {
private String
s1="Haooy",s2="Happy",s3,s4;
private Soap castille;
private int i;
private float toy;
public Bath(){
System.out.println("Inside Bath()");
s3="joy";
toy=3.14f;
castille=new Soap();

}
{i=47 ;}//这是怎么回事????? 单独的!!
public String toString(){
if(s4==null)
s4="Joy";
return
"s1="+s1+"\n"+
"s2="+s2+"\n"+
"s3="+s3+"\n"+
"s4="+s4+"\n"+
"i="+i+"\n"+
"toy="+toy+"\n"+
"castille="+castille;

{i=47;}是一个实例代码段,也就是当对象实例化时会自动调用,

System.out.println(b);//直接调用会调用Bath类的toString方法

{i=47 ;}//这是怎么回事????? 单独的!!
代码块,new这个对象时会执行块里面的东西.

System.out.println(b);//直接调用引用会达到什么效果?????全类都执行OR其中的方法(不包括构造方法??)??
调用b对象的toString()方法

直接调用会打印这个引用的内存地址

Inside Bath()
Soap()
s1=Haooy
s2=Happy
s3=joy
s4=Joy
i=47
toy=3.14
castille=Constracted