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(); */ } }