封装 继承 多态
封裝
-
該露的露 該藏的藏
-
程序設(shè)計追求"高內(nèi)聚 低耦合"
高內(nèi)聚:就是類的內(nèi)部數(shù)據(jù)操作細(xì)節(jié)自己完成, 不允許外部干涉;
低耦合:僅暴露少量的方法給外部使用.
-
-
封裝:(數(shù)據(jù)的隱藏)
- 通常 應(yīng)禁止直接訪問一個對象中數(shù)據(jù)的實例表示, 而應(yīng)該通過操作借口來訪問 稱為信息隱藏.
-
屬性私有 set/get
?
package com.ntru.demo.test.OOP.Demo04;/* 封裝的意義 1. 提高程序的安全性 保護(hù)數(shù)據(jù) 2. 隱藏代碼的實現(xiàn)細(xì)節(jié) 3. 統(tǒng)一接口 4. 系統(tǒng)可維護(hù)性增加*/ public class Application {public static void main(String[] args) {Student s1 = new Student();s1.name = "秦疆";System.out.println(s1.getName());s1.setAge(-1);//不合法的System.out.println(s1.getAge());}}?
package com.ntru.demo.test.OOP.Demo04;//類 private: 私有 public class Student {//名字public String name;//名字private int id;//學(xué)號private char sex;//性別private int age;//學(xué)號//性別//學(xué)習(xí)()//睡覺()//get 獲得這個數(shù)據(jù)public String getName(){return this.name;}//set 給這個數(shù)據(jù)設(shè)置值public void setName(String name){this.name = name;}public void getId(){this.id = id;}public char getSex(){return sex;}public int getAge(){return age;}public void setAge(int age){if(age>120 || age<0){age = 3;}this.age = age;} }繼承
- 繼承的本質(zhì)是對某一批類的抽象, 從而實現(xiàn)對現(xiàn)實世界更好的建模
- extends的意思是"擴展". 子類是父類的擴展
- JAVA中類只有單繼承 沒有多繼承
-
繼承是類和類之間的一種關(guān)系. 除此之外, 類和類之間的關(guān)系還有依賴、組合、聚合等.
-
繼承關(guān)系的兩個類, 一個為子類(派生類), 一個為父類(基類). 子類繼承父類, 使用換剪字extends來表示.
-
子類和父類之間 從意義上講應(yīng)該具有"is a"的關(guān)系
-
object類
-
super
1. super調(diào)用父類的構(gòu)造方法, 必須在構(gòu)造方法的第一個2. super必須只出現(xiàn)在子類的方法或者構(gòu)造方法中3. super和this不能同時調(diào)用構(gòu)造方法 -
this
- 代表的對象不同
? this: 本身調(diào)用這個對象
super: 代表父類對象的應(yīng)用
前提
? this: 沒有繼承也可以使用
super: 只能在繼承條件下才可以使用
構(gòu)造
this(); 本類的構(gòu)造
super(); 父類的構(gòu)造
- 方法重寫
多態(tài)(動態(tài)編譯 可擴展性)
- 即同一方法可以根據(jù)發(fā)送對象的不同而采用多種不同的行為方式
- 一個對象的實際類型是確定的, 但可以指向?qū)ο蟮囊妙愋陀泻芏?/li>
- 多態(tài)存在的條件
- 有繼承關(guān)系
- 子類重寫父類方法
- 父類引用指向子類對象
- 多態(tài)是方法的多態(tài) 屬性沒有多態(tài)性
- instance of類型轉(zhuǎn)換
總結(jié)
- 上一篇: 多维数组(冒泡排序,稀疏数组)
- 下一篇: UVa11853 Paintball