標籤: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關鍵字