关于组合问题(TIJ2nd P272) <![CDATA[abc主题无关行]]> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 测试xml<![CDATA[abc主题无关行]]> public class Bath { private String // Initializing at point of definition: s1 = new String("Happy"), s2 = "Happy",//...........1 s3,s4;//..........2 Soap castille; int i; float toy; Bath() { System.out.println("Inside Bath()"); s3 = new String("Joy"); i = 47; toy = 3.14f; castille = new Soap(); } void print() { // Delayed initialization: if(s4 == null) s4 = new String("Joy");//...........3 System.out.println("s1 = " + s1); System.out.println("s2 = " + s2); System.out.println("s3 = " + s3); System.out.println("s4 = " + s4); System.out.println("i = " + i); System.out.println("toy = " + toy); System.out.println("castille = " + castille); } public static void main(String[] args) { Bath b = new Bath(); b.print(); }}///:~因为castille是个类,直接打印时,他会调用自己的toString()方法,转成字符串输出该例中,就是返回了s, 请注意,我问的是object reference 的组合问题,不是s1等。对于toString()方法,下例为何无法打印?//:c06:SprinklerSystem.java// Composition for code reuse.class WaterSource { private String s; WaterSource() { System.out.println("WaterSource()"); s = new String("Constructed"); } public String toString() { return s; }}public class SprinklerSystem { private String valve1,valve2,valve3,valve4; WaterSource source; 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(); }}///:~输出结果:valve1 = nullvalve2 = nullvalve3 = nullvalve4 = nulli = 0f = 0.0source = null (此处为什么不输出"WaterSource" 和 "Constructed"?)请高手指教! class WaterSource { private String s; WaterSource() { System.out.println("WaterSource()"); s = new String("Constructed"); } public String toString() { return s; }}public class SprinklerSystem { private String valve1,valve2,valve3,valve4; WaterSource source=new 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(); }}///:~你在定义source的时候,仅仅是定义了该对象的一个引用,并未真正创建一个类的实例因此没有调用WaterSource的构造函数,必须改为WaterSource source=new WaterSource(); java只帮你初始化基本数据类型的成员,如:int, boolean.这种基本的数据类型不是从Object中继承。 java线程问题 如何将Jtable指定行删除? java如何连接firebird桌面数据库 JAVA很基础的题目,谁帮我解释一下,谢谢 求助,怎么用JAVA写计时器代码?怎么样获取当前系统时间? 跪求一段打开网页后自动全屏代码!!!!拿分的来!!!只要好使就给分 很菜鸟的问题 怎么把十进制数转换成bcd码 ??? 再请教一个正则表达式的问题,关于数值大小限制. javamail 接收来自foxmail的信件时标题为乱码,找了半天,实在找不到答案,请大家帮帮忙! java.io.* 里面的file 如何分目录还是文件 请问怎么在java中用反三角函数?
<![CDATA[abc
主题无关行
]]>
private String
// Initializing at point of definition:
s1 = new String("Happy"),
s2 = "Happy",//...........1
s3,s4;//..........2
Soap castille;
int i;
float toy;
Bath() {
System.out.println("Inside Bath()");
s3 = new String("Joy");
i = 47;
toy = 3.14f;
castille = new Soap();
}
void print() {
// Delayed initialization:
if(s4 == null)
s4 = new String("Joy");//...........3
System.out.println("s1 = " + s1);
System.out.println("s2 = " + s2);
System.out.println("s3 = " + s3);
System.out.println("s4 = " + s4);
System.out.println("i = " + i);
System.out.println("toy = " + toy);
System.out.println("castille = " + castille);
}
public static void main(String[] args) {
Bath b = new Bath();
b.print();
}
}///:~
因为castille是个类,直接打印时,他会调用自己的toString()方法,转成字符串输出
该例中,就是返回了s,
对于toString()方法,下例为何无法打印?
//:c06:SprinklerSystem.java
// Composition for code reuse.class WaterSource {
private String s;
WaterSource() {
System.out.println("WaterSource()");
s = new String("Constructed");
}
public String toString() { return s; }
}public class SprinklerSystem {
private String valve1,valve2,valve3,valve4;
WaterSource source;
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();
}
}///:~输出结果:
valve1 = null
valve2 = null
valve3 = null
valve4 = null
i = 0
f = 0.0
source = null (此处为什么不输出"WaterSource" 和 "Constructed"?)请高手指教!
private String s;
WaterSource() {
System.out.println("WaterSource()");
s = new String("Constructed");
}
public String toString() { return s; }
}public class SprinklerSystem {
private String valve1,valve2,valve3,valve4;
WaterSource source=new 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();
}
}///:~你在定义source的时候,仅仅是定义了该对象的一个引用,并未真正创建一个类的实例
因此没有调用WaterSource的构造函数,必须改为WaterSource source=new WaterSource();