標籤:
類
類是JAVA中一個重要的概念,可以把類理解成一個對象的抽象,這個抽象的對象包含了變數(用來描述這個對象的屬性)和方法(用來描述這個對象可以幹什麼),類中的各個成員之間可以相互調用(static修飾的成員不能訪問沒有static修飾的成員).
而每個類中又必須有一個或者多個構造方法,這個構造方法用來將這個抽象的對象執行個體化。
類的定義格式為
[修飾符] class 類名{ 建構函式; 成員變數; 方法; }
在類中的建構函式、成員變數和方法都可以是0個或者多個
類的修飾符可以使用public、final、abstract,或者沒有修飾符,abstract修飾的類被成為抽象類別
內部類:
是指定義在類中的類
public class A{ int a; int b; public void c(){} public class B{ ...... }}
內部類訪問外部類的private屬性或方法使用 外部類.this.屬性(方法)來實現
內部類訪問外部類的static屬性或方法,可以直接使用類名.屬性(方法)
方法
在物件導向變成語言中,類才是一等公民,整個系統由一個又一個類組成,方法必須屬於類或者對象
一旦將一個方法定義在某個類的類體內,如果這個方法使用static修飾,則這個方法屬於這個類,否則,這個方法屬於這個類的執行個體
注意:
1.方法不能獨立定義,方法只能在類體內定義
2.從邏輯意義上來看,方法要麼屬於該類本身(使用static修飾),要不屬於該類的一個對象
3.永遠不能獨立執行方法,執行方法必須使用類或對象作為調用者
方法的參數的傳遞
如果聲明方法時包含了形參聲明,則調用方法時必須給這些形參指定參數值,調用方法時實際傳給形參的參數值也被稱為實參
傳遞多個形參的定義方法,但長度可變的形參只能處於形參列表的最後,一個方法中最多隻能包含一個長度可變的形參,長度可變的形參本質是一個數組,因此調入一個包含長度可變形參的方法時,這個長度可變的形參既可以傳入多個參數,也可以傳入一個數組。例如 :
public static void test(int a,String...books){ }
構造方法
構造方法是類中的特殊存在,它是一個與類同名且沒有傳回值類型的方法。對象的建立就是通過構造方法來完成,其功能主要是完成對象的初始化。當類執行個體化一個對象時會自動調用構造方法。
構造方法有以下特點
1、構造方法與類同名
2、每個類可以有一個以上的構造方法
3、構造方法可以有0個、1個或者1個以上的參數
4、構造方法沒有傳回值
5、構造方法總是伴隨著new操作符的執行被調用
遞迴方法
一個方法體內調用它自身,被稱為方法遞迴。方法遞迴包含了一種隱式迴圈,它會重複執行某段代碼,但這種重複執行無須迴圈控制
方法的重載
多個方法,有相同的名字、不同的參數,便產生了重載(跟傳回值無關)。
編譯器通過用各個方法給出的參數類型與特定方法調用所使用的值進行匹配來挑選出相應的方法。
例如:
Person p = new Person()Person p = new Person("張三",50)
編譯器通過通過Person的參數來確定調用哪個構造方法
建立對象使用 類名 方法名 = new 類的建構函式;
例如
Person p1 = new Person();Person p2 = new Person("張三",40)
其實上面的對象建立是由Person p1 = null 和 P1 = new Person兩部分組成的
Person p1 = null部分稱之為“聲明對象”、P1 = new Person部分稱之為“給對象執行個體化”,現實編程中往往將兩步合并
方法的重寫
方法的重寫存在於JAVA的繼承中,子類繼承了父類的方法之後往往需要對父類的方法做出修改,在子類中修改父類的方法被稱為方法的重寫
注意:
1、方法的重寫需要滿足:方法名相同,傳回值類型相同,參數也相同
2、被子類重寫的方法,不能有比父類方法更嚴格的存取權限
方法重寫和方法重載的區別
| |
重載 |
重寫 |
單詞 |
Overloading |
Overriding |
定義 |
方法名相同,參數列表不同 |
方法名、傳回值、參數列表全部相同 |
許可權 |
沒有要求 |
重寫的方法不能比父類的方法許可權更嚴格 |
範圍 |
同一類 |
繼承 |
方法及屬性的許可權修飾符及範圍
private < default < protected < public
private ,私人,只可在當前類中訪問
default,預設,可在包內訪問
protected,保護,可在本包,本類和子類下使用
public,公開,可在整個工程下訪問
對象
上面說到,類的本身是一個抽象的對象,我們通過調用類中的建構函式來講這個抽象的對象執行個體化,我們使用new關鍵字來調用這個類的建構函式,來建立這個類的執行個體。
建立對象之後,就可以使用這個獨享了,可以方法這個對象的執行個體變數,可以調用這個對象的方法。
在物件導向的程式設計語言中,一切事務均可以看作是一個對象。
JAVA筆記整理(三),JAVA中的類和方法