注:函數和方法是同樣東西。【因爲我以前學習的時候有些書籍不是一樣的說法,書看多了,我就習慣了不一樣狀況下用不一樣的說法】java
首發時間:2018-03-22安全
class Dog{ String name; int foot=4; Dog(){//這是一個構造函數 this.name="旺財"; } void hello() { System.out.println("hello,this is a dog"); } static void static_hello() { System.out.println("hello,this is a dog too"); } } public class Demo { public static void main(String args[]) { Dog d=new Dog(); System.out.println(d.foot);//4 d.hello();//hello,this is a dog d.static_hello();//hello,this is a dog too Dog.static_hello();//hello,this is a dog too } }
根據變量、方法是否有static修飾能夠分爲實例變量,實例方法和靜態變量(類變量),靜態方法(類方法)函數
被static修飾的成員的特色:學習
隨着類的加載而加載,優先於對象存在,靜態成員內存位於方法區this
被全部對象所用享【因此可稱爲類變量或類方法】spa
能夠直接類名調用3d
靜態方法只能訪問靜態成員code
靜態方法中不能夠寫this,super關鍵字對象
實例變量\方法跟靜態變量\方法的區別比如:「泰迪狗類」好比有一個共有屬性「狗種類名」,那麼這個屬性應該是全部泰迪狗都有的,而且是泰迪狗共享的,若是某一天人類想改泰迪狗的種類名稱,那麼應該是全部泰迪狗都改的(靜態的);而每一隻泰迪狗都有本身的主人,這是由每一隻狗自身決定的,因此這是特有屬性,即便這隻狗換了主人,也不會影響別的狗。(實例的)blog
class Dog{ String name; Dog(){ this.name="旺財"; } Dog(String name){ this.name=name; } } public class Init_usage { public static void main(String args[]) { Dog d3=new Dog(); Dog d4=new Dog("小菜"); System.out.println(d3.name); System.out.println(d4.name); } }
class Man{ private int money; String name; Man(String name,int money){ this.name=name; this.money=money; } int getmoney(){ return money; } void setMoney(int money){ this.money=money; } } public class Private_usage { public static void main(String[] args) { Man m=new Man("lilei",2000); System.out.println(m.name);//lilei // System.out.println(m.money);//報錯的,由於私有了,不能訪問 // System.out.println(m.wife);//報錯的,由於私有了,不能訪問 System.out.println(m.getmoney()); //2000 m.setMoney(6000); System.out.println(m.getmoney());//6000 } }
類中的成員變量默認是帶有this前綴的,但遇到同名時必須加以區分。
this加上參數列表(this(參數))的方式就是訪問本類中符合該參數的構造函數
用於調用構造函數的this語句必須放在第一行,由於初始化動做要優先執行
class Person{ String name; int age; Person(String name,int age){ this.name=name; this.age=age; } void hello() { this.sysprint(); // sysprint(); } void sysprint() { System.out.println("hello world!"); } } public class This_usage { public static void main(String args[]) { Person p1=new Person("lilei",18); p1.hello();//hello world! } }