標籤:業務需求 內聚 system 存在 多態 訪問 效率 面向 定義
物件導向簡介
物件導向編程是一種編程方式,此編程方式需要使用 “類” 和 “對象” 來實現。
- 類,用於描述多個對象的共同特徵,它是對象的模板。
- 對象,用於描述現實中的個體,它是類的執行個體。
類的定義
class 類名 {//屬性資料類型 變數名;…//方法修飾符 傳回值類型 方法名(參數){ }…}建立對象
類名 對象名 = new 類名();
物件導向編程的優點
最大的好處是:代碼重用
1、易維護
採用物件導向思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在局部模組,所以維護起來是非常方便和較低成本的。
2、品質高
在設計時,可重用現有的,在以前的項目的領域中已被測試過的類使系統滿足業務需求並具有較高的品質。
3、效率高
在軟體開發時,根據設計的需要對現實世界的事物進行抽象,產生類。使用這樣的方法解決問題,接近於日常生活和自然的思考方式,勢必提高軟體開發的效率和品質。
4、易擴充
由於繼承、封裝、多態的特性,自然設計出高內聚、低耦合的系統結構,使得系統更靈活、更容易擴充,而且成本較低。
物件導向三大特性一、封裝
將對象的屬性與方法的實現細節隱藏,僅對外提供一些公用的訪問方式。
封裝的體現:
- 變數:使用 private 修飾,這就是變數的封裝
- 方法:也是一種封裝,封裝了多條代碼
- 類:也是一種封裝,封裝了多個方法
私人成員變數:
- private修飾的成員只能在當前類中訪問,其他類中無法直接存取
class Person {private int age;// 設定類私人成員變數(只能將屬性變數設定為私人,局部變數不可以)private String name;public void setAge(int a) {// 對外提供設定成員變數的方法if (a < 0 || a > 130) {// 由於是設定成員變數的值,這裡可以加入資料的驗證System.out.println(a + "不符合年齡的資料範圍");return;}age = a; }public void getAge() { // 對外提供訪問成員變數的方法return age;}}
this關鍵字:
作用:用來區別同名的成員變數與局部變數(this.成員變數)
樣本:判斷是否是同齡人
class Person {private int age;private String name;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public void speak() {System.out.println("name=" + this.name + ",age=" + this.age);}// 判斷是否為同齡人public boolean equalsAge(Person p) {// 使用當前調用該equalsAge方法對象的age和傳遞進來p的age進行比較// 由於無法確定具體是哪一個對象調用equalsAge方法,這裡就可以使用this來代替/* * if(this.age == p.age) { return true; } return false; */return this.age == p.age;}}
Java——物件導向編程