练习1:创建一个类,它包含一个未初始化的String引用,验证该引用被Java初始化成null(代码如下)
public class StringTest {
String string;
public StringTest(){
System.out.println("string"+string);
}
}
main函数代码如下:
public class RxJavaTest {
public static void main(String ...args){
StringTest stringTest=new StringTest();
}
创建一个类,它包含一个在定义时就被初始化了的String域,以及另一个通过构造器初始化的String域。这两种方式有何差异?代码如下:
public class StringTest {
String string;
String str1=null;
String str2="str2";
String str3=str1;
public StringTest(){
System.out.println("string"+string);
}
public StringTest(String string){
this.str1=string;
}
}
public class RxJavaTest {
public static void main(String ...args){
byte a = 127;
byte b = 127;
//a = a + b; //报
// 错
int c=(a+=b);
/**
* 分析:
* 成员变量string 定义并未被初始化
* 成员变量str1定义并初始化为null
* 成员变量str2定义并初始化为"str2"
*成员变量str3为null
*/
StringTest stringTest1=new StringTest();
StringTest stringTest2=new StringTest("测试String构造器");
System.out.println("str1:"+stringTest2.str1);
System.out.println("str2:"+stringTest2.str2);
System.out.println("str3:"+stringTest2.str3);
}
}
网友评论