Java三大特點
阿新 • • 發佈:2018-12-25
封裝
1.封裝又叫隱藏實現,隱藏屬性、方法和方法實現過程,一般是將成員屬性私有化,並對外提供set和get方法
2.許可權修飾符:private(本類訪問) < default(同包訪問) < protected(不同包的子類訪問) <public(不同類訪問)
3.關聯(聚合(set方法修改名稱)、組合(構造方法傳遞名稱))、依賴(方法引數、方法返回值)
4.練習題:
1.Calendar日曆類用法
2.定義紙牌類,分別為A、2-10、J、Q、K,四種花色、大小王;定義一個遊戲類,其中有一個撲克,共52張牌,隨機洗牌;定義玩家類,每個玩家可以發到13 張牌,建立4個玩家物件,列印他們手中的牌
3.定義賬戶類
屬性:帳號、密碼、餘額
功能:存錢、取錢
定義使用者類,屬性:
屬性:姓名、年齡、賬戶
實現使用者賬號密碼登入,登入後可以看到使用者資訊,存錢取錢功能
4.定義一個圓類,屬性半徑r,常量PI,計算面積;使用圓定義一個圓柱體,屬性高h,計算體積
5.猜拳遊戲:有兩個選手,然後由裁判進行判定並記錄勝負,三局兩勝;遊戲流程:裁判入場,兩名選手入場,開始出拳,判斷輸贏,勝利兩局後,宣佈結果並且遊戲結束
6.隨機數
Math.random ();
Random.nextInt();
Sysotem.currentTime%10;
7.某商店採用會員制管理,會員購買產品時,向收銀員提供自己的會員卡和所購買的商品,收銀員驗證會員卡合法後,將商品記錄到商品銷售表中,並將總金額作為會員積分計入會員檔案中
繼承
1.可以繼承父類非private修飾的成員屬性和成員方法,不能繼承父類的構造方法,但是能通過super()呼叫
2.面試題:呼叫順序:父類靜態程式碼塊 → 子類靜態程式碼塊 → 父類程式碼塊 → 父類構造方法 → 子類程式碼塊 → 子類構造方法
super
1 .區分變數
2.找變數(就近原則):區域性變數→成員變數→父類變數
3.找方法:先子類後父類
4.呼叫構造方法super()
Object
1.常用方法:equals、HashCode、clone、toString、getClass、wait、notify會用就行
重寫
1.在繼承關係中,返回型別,方法名、引數列表必須完全一致,子類的許可權必須大於父類
2.父類私有方法,final修飾的方法,構造方法不能被重寫
3.重寫發生在子父類中,過載發生在類中
4.實際中,抽象方法才需要重寫
抽象類
1.大多數用來建模,最早提出的概念
2.抽象類不能被例項化,格式:abstract class 類名{}
3.抽象類比普通類多了抽象方法而已,而且抽象方法可有可無
4.子類重寫父類全部抽象方法就可以被例項化,重寫部分抽象方法還是抽象類不能被例項化
多型
1.條件:繼承、重寫,父類的引用指向子類的物件,多型可以出現在方法返回值、方法引數
2.只有方法有多型性
3.只能呼叫父類的成員屬性和未被重寫的方法,以及子類重寫父類的方法
4.instanceof二元運算子,判斷左邊物件是不是右邊類或者子類的例項
常見用法:向下轉型
Pet pet = new Cat();
Cat cat = null;
if(pet instanceof Cat){//這個動物(貓轉過來的)是不是貓(true)
cat = (Cat)pet;
}else{
sysotem.out.println("不能向下轉型");
}
5.小練習:使用Java實現文字RPG遊戲
介面
1.只能包含抽象方法(預設public abstract) 和 常量(預設public static final),不允許有普通方法和構造方法
2.實際開發中,一般只有介面回撥才需要自定義介面
3.介面與抽象類寫法基本一致,抽象類是根據型別分(is a),介面根據功能分(has a)
4.介面命名規則:I開頭或者able結尾
5.觀察者模式
6.介面、實現者、呼叫者