建立一個類,它包含一個在定義時就被初始化了的String域,以及另一個通過構造器初始化的String域。這兩種方式有何差異
阿新 • • 發佈:2019-02-20
package section.five;
/**
* Created by mac on 2017/7/16.
*/
public class ExerciseTwo {
String str1 = "hello";
String str2 = null;
String str3 = str2;
public ExerciseTwo(String str2){
this.str2 = str2;
}
}
package section.five; /** * Created by mac on 2017/7/16. */ public class Main { public static void main(String[] args){ ExerciseTwo exerciseTwo = new ExerciseTwo("world"); System.out.println("str1: "+exerciseTwo.str1); System.out.println("str2: "+exerciseTwo.str2); System.out.println("str3: "+exerciseTwo.str3); } }
輸出結果:
str1: hello
str2: world
str3: null
輸出結果可得:
在定義時就被初始化了的String域,在物件被例項化時引用str1 被賦值一次
另一個通過構造器初始化的String域,在物件被例項化時引用str2 被賦值兩次,第一次賦值 null,在賦值worle