1. 程式人生 > >Java面向對象的基本思想理解

Java面向對象的基本思想理解

java的oop部分

1、封裝:把一些數據類型(屬性)和有關數據類型的操作(方法)封裝起來,形成一個不可分開的實體(類);給內部的屬性私有化,提供公開的方法。當外部需要訪問時,可以不用管實體內部的具體邏輯關系,通過對象調用類內部的方法就行了;

優點:信息隱藏(安全性)、簡化操作;

例子:一個賬戶類,屬性有:賬號、密碼等;方法有存錢、取錢等;因為要保護個人信息,所以將屬性私有化,然後提供公開的get,set方法,這樣就不用每創建一個賬戶就要去改賬號和密碼了,只需要通過這個類的實例調用get、set方法就行了。


2、繼承:將一些公有的特性(屬性)和行為(方法)拿出來封裝在一個類(父類)中,其他類可以通過繼承這個類來得到這些屬性和方法,就不用每次都重新定義了;

優點:代碼復用性好、簡化操作;

例子:一個Person類,裏面有姓名、年齡等屬性,有說話、吃飯等方法;然後定義一個學生類時,只用繼承Person類,就可以不需要再定義這些屬性和方法(也可以重新定義),只要分別賦值就可以了。


3、多態:程序中定義的引用變量所指向的具體類或者通過這個引用變量發出的方法調用,在編譯的時候是不確定的,只有到運行時才知道具體指向哪個類,具體調用哪個方法;

優點:靈活、抽象、行為共享、代碼共享

例子:Person p=new Student()這就是多態;在編譯時,p指向哪個類,p調用的方法是哪個類裏的都是不確定的,在運行時才確定;

多態裏有向上造型和向下造型;向上造型是自動轉化的,小類型自動轉換成大類型;向下造型是強制的,不是所有時候都可以轉化;如:

Father fa=new Father();

Child ci=new Child();

ci=(Child)fa;這樣編譯能通過,但是運行時會出現java.lang.ClassCastException (類轉換異常)

如果是:創建父類對象,實例化子類就可以進行向下造型;

補充:多態發生的前提:

1、重載:方法簽名不同:參數類型不同、參數個數不同、參數順序不同,方法名要相同;與返回類型、訪問權限無關;

2、重寫:a、方法簽名要完全相同;

b、訪問權限子類重寫的方法不能小於父類裏的方法(更開放);

c、子類重寫的方法拋出的異常應該和父類方法拋出相同或者是父類方法拋出的異常的子類;

d、返回類型:如果是基本類型,則要相同;如果是引用類型,子類方法應該與父類相同或者是父類的子類(要有包含關系)

多態中經常用到一個關鍵詞instanceof: x instanceof A:檢驗x是否為類A的對象,返回值為boolean型。常用在equals方法的重寫裏面。


4、抽象:從一些已有的事物中抽取出我們所關心的特性(屬性)和行為(方法),從而形成一個新的事物的過程。

優點:代碼復用性好,操作方便

例子:各種各樣的汽車,我們看到都知道是車,是因為我們都有一個抽象的概念,比如說:四個輪子,能跑等等,這就是抽象!


本文出自 “Java學習” 博客,請務必保留此出處http://12181171.blog.51cto.com/12171171/1955941

Java面向對象的基本思想理解