面向過程:當須要實現一個功能的時候,每一個具體的步驟都要親力親爲,詳細處理每個細節。學習
面向對象:當須要實現一個功能的時候,不關心具體的步驟,而是找一個已經具備該功能的人,來幫助我作。this
類:是一組相關屬性和行爲的集合,能夠當作是一類事物的模版,使用事物的屬性特性和行爲描述該類事物對象
對象:是一類事物的具體體現,對象是類的一個實例,必然具有該類的屬性和行爲繼承
面向對象的三大特徵:封裝、繼承和多態生命週期
類的定義:public class ClassName{內存
成員變量;get
成員方法;編譯器
}編譯
示例代碼:class
public class Student { String name; int age; public void eat(){ System.out.println("吃"); } public void sleep(){ System.out.println("睡"); } public void study(){ System.out.println("學習"); } }
注意:成員變量是直接定義在類當中的,在方法的外邊。
成員方法不要寫static關鍵字
類的使用:一個類並不能徹底使用,須要建立一個對象,才能使用。
使用的步驟:一、導包:須要指出須要使用的類在什麼位置, import 包名稱.類名稱,對於和當前類屬於同一個包的狀況,能夠省略導包語句
二、建立:類名稱 對象名 = new 類名稱();
三、使用:使用成員變量:對象名.成員變量名
使用成員方法:對象名.成員方法名(參數)
示例代碼:
public class Demo { public static void main(String [] args) { Student stu = new Student(); stu.name="讀者"; stu.age=18; stu.eat(); System.out.println(stu.name+stu.age); } }
局部變量和成員變量的區別:一、定義的位置不同
二、做用範圍不同
三、默認值不同
四、內存的位置不同
五、生命週期不同
面向對象的封裝:一、方法就是一種封裝
二、private也是一種封裝
封裝就是將一些細節信息隱藏起來,對於外界不可見。
一旦使用private進行修飾,那麼本類當中仍然能夠隨意訪問,可是超出本類範圍以外的就不能在直接訪問,能夠經過創建get和set方法間接訪問。
示例代碼:
public class Student { String name; int age; boolean male; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isMale() { return male; } public void setMale(boolean male) { this.male = male; } }
注意:對於基本數據類型boolean,不使用get方法,而使用is方法,set方法不變。
當方法的局部變量和類的成員變量重名的時候,優先使用局部變量。所以要使用this來區分紅員變量和局部變量
this的使用:this .成員變量名。記住誰調用的方法,this就是誰。
構造方法:專門用來建立對象的方法,當咱們用new來建立對象的時候,其實就是調用了構造方法。
構造方法的格式:public 類名稱(參數類型 參數名){方法體;}
注意:一、構造方法的名稱必須和所在的類名稱徹底同樣,就連大小寫也同樣。
二、構造方法不要寫返回值類型,連void都不寫
三、構造方法不能return一個具體的返回值
四、若是沒有編寫任何構造方法,那麼編譯器會默認一個構造方法,沒有參數,方法體什麼都不作
五、一旦編寫了至少一個構造方法,那麼編譯器將再也不建立默認的構造方法
六、構造方法也能進行重載
示例代碼:
public Student() { } public Student(String name, int age, boolean male) { this.name = name; this.age = age; this.male = male; }
標準的類由4個部分組成:一、全部的成員變量都要使用private進行修飾
二、爲每個成員變量編寫get和set方法
三、編寫一個無參數的構造方法
四、編寫一個全參數的構造方法
示例代碼:
public class Student { String name; int age; boolean male; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isMale() { return male; } public void setMale(boolean male) { this.male = male; } public Student() { } public Student(String name, int age, boolean male) { this.name = name; this.age = age; this.male = male; } }