「java」Java中聲明一個對象並賦值NULL或者只聲明不賦值

Java中聲明一個對象並賦值NULL或者只聲明不賦值

其實這個問題可以當成聲明變量要不要賦初始值的問題,不管這個變量是基礎類型還是引用類型,只是基礎類型不能賦值NULL。

這裏要分兩種清況,成員變量或者局部變量。給一個代碼:

class People{
    private String name;
    private int age;
 
    String getName() {
        return name;
    }
    int getAge() {
        return age;
    }
}
public class Demo {
    public static void main(String[] as){
        People p;
         int a;
        p = new People();
//        t1= null;
//        a=1;
        System.out.println(p.getName());
        System.out.println(p.getAge());
//        System.out.println(a);
    }
}

如果是成員變量,比如People類的name或者age字段,不手動賦初始值的時候Java會給個默認值,和變量的類型對應,string是引用類型,打印出來name是null,age是0這個時候變量初始值給不給null或者0是一樣的。

如果是局部變量,比如在主方法中,聲明一個對象p和一個整形a,如果只聲明的話,使用時會報錯,也就是局部變量在使用之前必須要手動初始化賦值,Java不會給默認值,當然也可以不在聲明的時候賦值,可以在後邊使用之前賦值就行。

這裏可能要注意引用類型變量,比如代碼中的p對象,聲明時不賦值和給個null是不一樣的,賦值null也相當於完成了初始化賦值,這個時候可以調用方法,但必然會報空指針異常。如果只想提前聲明一下,後邊代碼會進行賦值的話,那聲明的時候就不必要給個null了。

總之,一個局部對象使用之前肯定要先賦值,但不管你在什麼時候賦值。

所以,無論是成員變量還是局部變量,聲明的時候不賦值只聲明當然是可以的。
 

 

轉載:https://blog.csdn.net/liyaowen505/article/details/83148059

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