java — Static關鍵字

來源:互聯網
上載者:User

標籤:country   main   super   nbsp   代碼   調用   ble   stat   int   

static 來修飾方法 : 有點類似OC中的類方法 :

1.只能用類名來調用

2.類中是不允許訪問屬性。

 

1. 訪問方式:

1.可以通過對象來訪問

對象.方法名();

2.可以通過類名來訪問

       類.方法名();

  推薦使用類名調用。

2. 作用:

             1.用來修飾成員變數

             2.用來修飾方法

 

3. Static修飾方法的使用注意點:

1.靜態方法可以用對象和類名調用。非靜態方法只能用對象來調用。

2.靜態方法是可以訪問靜態成員變數,不能夠訪問非靜態成員變 量。非靜態方法中可以訪問任何成員變數。

原因:有可能靜態方法被調用了,但是對象還沒有被建立出來。

3.靜態方法可以直接存取靜態方法,但是不能訪問非靜態方法.非靜態方法是可以訪問靜態方 法。

原因:有可能靜態方法被調用了,但是對象還沒有被建立出來 ,非靜態方法只能由對象調用。

         如果對象被建立出來,靜態方法早就存在記憶體中了。

4.靜態方法中是不允許出現this關鍵字和super關鍵字

this : 表示一個方法調用者對象。

可能對象沒有被建立出來。

 

//特點 :

靜態資料早於非靜態資料存在記憶體中。

 

4. 什麼情況下使用static來修飾方法:

當一個方法不需要直接放味非待用資料,這個時候就可以用static修飾 (定義工具類)

代碼執行個體一:

class Student{

 

 

String name; // 非靜態成員變數

static String country; // 靜態成員變數

 

public Student(String name){

this.name = name;

}  

 

//公有的方法

public void study(){

eat(); //非靜態是可以調用靜態方法。

 

System.out.println(name+"正在學生");

}

 

//用static 來修飾吃飯的方法

//結構上就是在public後面多了一個static

//靜態方法

public static void eat (){

 

//study(); 不允許調用非靜態方法。

sleep();

 

System.out.println(country+"正在吃飯");

}

 

//靜態方法

public static void sleep (){

 

System.out.println("學生在睡覺");

}

}

 

class Demo4 {

 

//靜態方法

public static void main(String[] args){

 

 

Student s = new Student("張三");

s.study();

s.country = "中國";

//調用吃飯的方法

//Student.eat();

s.eat();

 

}

 

代碼執行個體二:

class Student{

 

 

String name; // 非靜態成員變數

static String country; // 靜態成員變數

 

public Student(String name){

this.name = name;

}  

 

//靜態代碼塊

//編譯的java.class檔案被使用的時候就執行了.

static{

System.out.println("我是靜態代碼塊");

}

 

//公有的方法

public void study(){

 

eat(); //非靜態是可以調用靜態方法。

 

System.out.println(name+"正在學生");

}

 

//用static 來修飾吃飯的方法

//結構上就是在public後面多了一個static

//靜態方法

public static void eat (){

 

//study(); 不允許調用非靜態方法。

sleep();

 

System.out.println(country+"正在吃飯");

}

 

//靜態方法

public static void sleep (){

 

System.out.println("學生在睡覺");

}

}

 

class Demo5 {

 

//靜態方法

public static void main(String[] args){

 

Student.eat();

 

/*

Student s = new Student("張三");

s.study();

s.country = "中國";

//調用吃飯的方法

//Student.eat();

s.eat();

*/

 

}

}

java — Static關鍵字

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.