Static關鍵字

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

1.只能用類名來調用 工具

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

 

1. 訪問方式:spa

1.能夠經過對象來訪問code

對象.方法名();對象

2.能夠經過類名來訪問blog

       .方法名();內存

  推薦使用類名調用。編譯

2. 做用:class

             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();

*/

 

}

}
相關文章
相關標籤/搜索