String類型賦初值問題

package szsm;

/**
 * 在靜態方法裏面創建一個局部變量,必須對其進行初始化賦值
 * 
 * @author 2萌
 *
 */
public class StringTest {
	static String aString;
//	String aString;
	int a;
	
	/**
	 * 普通方法:對於成員變量沒有賦初值的變量,在普通方法裏面打印的時候直接打印其系統默認賦給該類型的值。
	 * eg:String、Integer類型的成員變量初始值爲null,int類型初始值爲0
	 */
	public void A() {
		System.out.println(aString);
		System.out.println(a);
	}
	public static void main(String[] args) {
		/**
		 * 在靜態方法裏面創建一個局部變量,必須對其進行初始化賦值
		 * eg:String aString;System.out.println(aString);這樣打印輸出時候就會報錯:The local variable aString may not have been initialized
		 *    int aString;System.out.println(aString);這樣打印輸出時候就會報錯:The local variable aString may not have been initialized
		 *    靜態方法調用靜態的成員變量,靜態方法必須調用static修飾的成員變量。如果該靜態的成員變量未賦初值,則打印時候直接顯示系統默認類型的賦值
		 */
//		String aString;
//		Integer aString;
//		System.out.println(aString);
		String b = "bbb";
		System.out.println("b = " + b);
		StringTest s = new StringTest();
		s.A();
	}
}

靜態方法裏面爲賦初值的成員變量,是在編譯時候就不通過還是在運行期間拋出異常呢???

打印輸出:

b = bbb
null
0


package szsm;

public class Test {

	static String string;
	
	public static void main(String[] args) {
		System.out.println(string);
	}
	
}
打印:

null


package szsm;

public class Test {

	String string;
	
	public static void main(String[] args) {
		//報錯提示:Cannot make a static reference to the non-static field aString
		System.out.println(string);
	}
	
}

string變量直接飄紅 Cannot make a static reference to the non-static field aString

應該修改爲 static String string;


如果String變量未初始化在main()方法裏面:

public class Test {  
      
    public static void main(String[] args) {  
        /** 
         * 在靜態方法裏面創建一個局部變量,必須對其進行初始化賦值 
         * eg:String aString;System.out.println(aString);這樣打印輸出時候就會報錯:The local variable aString may not have been initialized 
         *    int aString;System.out.println(aString);這樣打印輸出時候就會報錯:The local variable aString may not have been initialized 
         *    靜態方法調用靜態的成員變量,靜態方法必須調用static修飾的成員變量。如果該靜態的成員變量未賦初值,則打印時候直接顯示系統默認類型的賦值 
         */  
    	String aString;
      System.out.println(<u><span style="color:#ff0000;">aString</span></u>);  
    }  
}  
錯誤提示:The local variable aString may not have been initialized







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章