1. 程式人生 > >使用Java實現面向物件程式設計 第一章

使用Java實現面向物件程式設計 第一章

     使用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不能呼叫類變數和類方法,也不能呼叫區域性變數。