使用Java實現面向物件程式設計 第一章
阿新 • • 發佈:2019-02-16
使用Java實現面向物件程式設計 1. 面向物件就是採用“現實模擬”的方法設計和開發程式 2. 面向物件設計的過程就是抽象過程,分一下3步構成 (1):發現類 (2):發現類的屬性 (3):發現類的方法 3. 抽象時遵循的原則如下: (1):屬性,方法的設定是為了解決業務問題 (2):關注主要屬性,方法 (3):如沒有必要,勿增加額外的類,屬性與方法 4.Java中建立物件,呼叫屬性及方法的語法與C#中是相同的 (1):通過構造方法建立物件 如:Penguin p=new Penguin(); (2):通過物件名.屬性名的方法呼叫屬性 如: p.name=”qq”; (3):通過物件名.方法名的方式呼叫屬性 如p.print(); 5.類(Class) 和物件(Object)是面向物件中兩個核心概念,類是對某一事物的描述,是抽象的,概念上的定義。物件是實際上存在的,具體的事物個體。一個類建立多個物件。 6.Final 除了可以修飾屬性外,還可以修飾方法和類。 7.類名。屬性名。方法名及常量的命名規範: (1):類名由一個或幾個單片語成,每個單詞的第一個字母大寫。 (2):屬性名和方法名由一個或幾個單片語成,第一個單詞字母小寫,其他單詞首字母大寫。 (3):常量名由一個或幾個單片語成,所有首字母大寫。 8. 構造方法的名稱和類名相同,沒有返回值型別,構造方法的主要作用就是在建立物件時執行一些初始化操作,如給成員屬性賦值。 9. 方法過載: 如果同一個類中包含了兩個或兩個以上的方法,它們的方法名相同,方法引數或引數型別不同,則該方法被過載了。成員方法和構造方法都可以進行過載。 10.方法過載的判斷依據; 必須在同一個類裡; 方法名相同; 引數列表(方法引數的個數不同或引數不同)不同; 與方法返回值和方法修飾符沒有任何關係; 在使用this呼叫自身的其他構造方法時,只能作為第一條語句。 11.Static 修飾符: Stati可以用來修飾屬性,方法和程式碼塊,static修飾的變數屬於這個類所有,即由這個類建立的所有物件共用同一個static變數。通常把static修飾的屬性和方法稱為類屬性(類變數),類方法,不適用static修飾的屬性和方法屬於單個物件通常稱為例項屬性,(例項變數),例項方法 12.結論 : 在載入類的過程中,完成靜態變數的記憶體分配,在執行靜態塊,兩者是在建立物件之前執行的 類屬性,類方法可以通過類名和物件名訪問,例項屬性,例項方法只能通過物件名訪問。 類方法只能訪問類屬性和其他類方法。 13.靜態方法中不能使用this關鍵字super關鍵字 14.直接通過類名.SEX_MALE方式使用,稱這個常量為靜態常量。 15.結論: 在方法中不可以定義static變數,也就是說,類變數不能是區域性變數。 16.結論:構造方法沒有返回值,如果有,則不是構造方法,而是和構造方法同名的成員方法。 17.封裝: 封裝是面向物件的三大特性之一,就是將類的狀態資訊隱藏在類內部,不允許外部程式直接訪問,而通過該類提供的方法來實現對隱藏資訊的操作和訪問。 封裝的具體步驟: 修改屬性的可見性來限制對屬性的訪問,為每個屬性建立一對賦值,(setter)方法和取值(getter)方法,用於對這些屬性的存取,在賦值方法中加入對屬性的存取控制語句。 封裝的好處: 隱藏類的實現細節,讓使用者只能通過程式規定的方法來訪問資料,可以方便的加入存取控制語句,限制不合理操作。 Private:成員變數和方法只能在其定義的類中被訪問,具有類可見性。 預設:成員變數和方法只能被同一個包裡的類訪問,具有包可見性。 Protected:可以被同一個包中的類訪問,被同一個專案中不同的子類訪問。 Public : 可以被同一個專案中的所有類訪問,具有專案可見性,這是最大的訪問許可權。 18.This關鍵字: This關鍵字是對一個物件的預設引用,在每個例項方法內部,都有一個this引用變數,指向呼叫這個方法的物件。 This距離: 1. 使用this呼叫成員變數,解決成員變數和區域性變數的同名衝突 Public void setName(String name) { This.name=name; //成員變數和區域性變數同名,this可以省略 } Public void setName(String xm) { Name=xm; //成員變數和區域性變數不同名,this可以省略 } 2.使用this呼叫成員方法 Public void play(int n) { health =health-n; This.print(); //this可以省略,直接呼叫print(); } 3. 使用this呼叫過載的構造方法,只能在構造方法中使用,必須是構造方法的第一條語句 Public void Penguin(String name,String sex) { This.name=name; This.sex=sex; } Public Penguin (String name,int health,int love,String sex) { This (name,sex); //呼叫過載的構造方法 This.health=health; This.love=love; } 19.因為this在物件內部指代自身的引用,所以this只能呼叫例項變數,例項方法和構造方法。 20.This不能呼叫類變數和類方法,也不能呼叫區域性變數。