第4節 類和對象
阿新 • • 發佈:2019-03-07
employ stat 值類型 覆蓋 元素 [] 實例 highlight int
一、Java 對象和類
- 面向對象語言三大特性:封裝、繼承、多態;
- 對象:描述客觀事物的一個實體;
- 類:類是封裝對象的屬性和方法的載體,反過來說具有相同屬性和行為的一類實體被稱為類;類行為:方法;屬性:成員變量
- 定義類:
[訪問修飾符] class 類名{ //class是聲明類的關鍵字,類名首字母大寫
//代碼
} - java中權限修飾符
訪問位置 private protected public 本類 √ √ √ 同包或其他子類 × √ √ 其他包的類或子類 × × √ - 定義屬性:
[訪問修飾符] 數據類型 屬性名; - 定義成員方法:
[權限修飾符] 返回值類型 方法名(參數類型 參數1名,....){
//方法體
return 返回值; //若無返回值,此句可以不寫(但仍可以用return ;退出該方法),並用void關鍵字聲明返回值類型
}
註:訪問修飾符可選;
參數列表可選;
二、創建和使用對象
- 聲明:聲明一個對象,包括對象名稱和對象類型。
- 實例化:使用關鍵字new來創建一個對象。
- 初始化:使用new創建對象時,會調用構造方法初始化對象。
- 類名 對象名 = new 類名();
new是關鍵字 類名()為對象的構造方法
public class Puppy{ int puppyAge; //成員變量 public Puppy(String name){ // 這個構造器僅有一個參數:name System.out.println("小狗的名字是 : " + name ); } public void setAge( int age ){ puppyAge = age; } public int getAge( ){ System.out.println("小狗的年齡為 : " + puppyAge ); return puppyAge; } public static void main(String []args){ /* 創建對象 */ Puppy myPuppy = new Puppy( "tommy" ); /* 通過方法來設定age */ myPuppy.setAge( 2 ); /* 調用另一個方法獲取age */ myPuppy.getAge( ); /*你也可以像下面這樣訪問成員變量 */ System.out.println("變量值 : " + myPuppy.puppyAge ); } }
小狗的名字是 : tommy 小狗的年齡為 : 2 變量值 : 2
- 使用對象:對象.屬性 對象.方法名
- 對象數組:對象數組的數據類型就是具體的類名,對象數組存儲的就是這個類的對象,每個元素就是一個對象。
-
源文件聲明規則:
- 一個源文件中只能有一個public類
- 一個源文件可以有多個非public類
- 源文件的名稱應該和public類的類名保持一致。例如:源文件中public類的類名是Employee,那麽源文件應該命名為Employee.java。
- 如果一個類定義在某個包中,那麽package語句應該在源文件的首行。
- 如果源文件包含import語句,那麽應該放在package語句和類定義之間。如果沒有package語句,那麽import語句應該在源文件中最前面。
- import語句和package語句對源文件中定義的所有類都有效。在同一源文件中,不能給不同的類不同的包聲明。Java包
三、方法的重載(不同於重寫即覆蓋,後面會說到)
方法重載即在同一個類中允許同時存在一個或多個同名方法,構成重載的條件:1.參數類型不同;2.參數順序不同;3.參數個數不同;
註意:方法的返回值類型不能作為判斷是否重載的依據;
可以定義不定長參數方法:返回值 方法名(數據類型 ... 參數名稱) 例如:void main(int[ ] a){....}
package cn.galc.test; public class TestOverLoad { void max(int a, int b) { System.out.println(a > b ? a : b); } /*int max(int a, int b) { return a > b ? a : b; }*/ void max(float a, float b) { System.out.println(a > b ? a : b); } }
四、this關鍵字
五、構造方法
六、靜態常量、變量和方法
第4節 類和對象