java中的局部變量與成員變量

1.成員變量是是在類中定義的,而局部變量是在方法中定義的;

2.java會給成員變量賦初始值,但不會給局部變量賦初始值

3.局部變量的優先級高

4.無參的構造方法可以創建對象,有參的構造方法也可以創建對象

Telphone phone=new Telphone();
Telphone phone1=new Telphone(5.0f,4.5f,3.4f);

還可以判斷傳值是否安全

public Telphone(float newscreen,float newcpu,float newmem){
if(newscreen<3.5f){
System.out.println("你輸入的參數是不合理的");
screen=3.5f;}
else{
screen=newscreen;}
cpu=newcpu;
mem=newmem;
System.out.println("有參的構造方法執行了");

5.Java 中被 static 修飾的成員稱爲靜態成員或類成員。它屬於整個類所有,而不是某個對象所有,即被類的所有對象所共享

靜態成員可以用類名直接訪問,也可以用對象名進行訪問。


與靜態變量一樣,我們也可以使用 static 修飾方法,稱爲靜態方法或類方法

public static void print(){ }

靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。



如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象,然後通過對象來訪問非靜態變量。如:



 在普通成員方法中,則可以直接訪問同類的非靜態變量和靜態變量,如下所示



 靜態方法中不能直接調用非靜態方法,需要通過對象來訪問非靜態方法。如:



public static int sum() { 
      return score1+score2;
}

靜態方法中調用靜態方法

int allScore = HelloWorld.sum();

        int allScore = sum();

類名.sum()


同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量


程序運行結果:



程序運行時靜態初始化塊最先被執行,然後執行普通初始化塊,最後才執行構造方法。由於靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時並未執行靜態初始化塊。


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