用java進行物件導向程式設計,物件導向是什麼意思

茶花盛開發表於2017-04-10

理解Java物件導向的重要知識點:

一、 類,物件

類?首先舉一個例子:小李設計了一張汽車設計圖,然後交給生產車間來生產汽車,有黑色的、紅色的、白色的… 這裡,汽車設計圖就是我們說的類(class),生產車間就是new構造器(大部分物件都是new出來的),生產出來的汽車就是我們要說的物件。可以說java程式設計實質就是構建類的過程。

用java進行物件導向程式設計,物件導向是什麼意思

物件?萬物皆物件,宇宙中,如植物,動物,人類,每個個體都是各司其職、各盡所能的。這就要求物件高內聚、低耦合(簡單理解就是人的大腦,它負責思考,想象,記憶,而不能呼吸,排毒,消化食物,從而保證它獨立和高效)。如果你想學習java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裡面有大量的學習資料可以下載,物件具有兩種東西狀態(屬性)和行為(方法),請看下面程式碼:

Student.java

用java進行物件導向程式設計,物件導向是什麼意思

public class Student {

用java進行物件導向程式設計,物件導向是什麼意思

InitialStudent.java

用java進行物件導向程式設計,物件導向是什麼意思

public class InitialStudent { public static void main(String args[]){
} }

用java進行物件導向程式設計,物件導向是什麼意思

二、封裝,繼承,多型

封裝?舉個粗俗的比喻,我的行動硬碟存了很多各式各類的資料,但是舍友常常借用,時不時拿我的用(格式化?裝系統?存電影?),這就給我這個擁有者非常大的不便,我就跟他宣告,這個硬碟是我私有的,不能你得按照我允許的方式使用!物件也是這樣,不能隨意的存取內部資料,否則會造成“交叉感染”。所以我們需要封裝:將屬性私有化,提供公有的方法訪問私有屬性。

Adult.java

用java進行物件導向程式設計,物件導向是什麼意思

public class Adult { private int age; public int getAge() { return age;

用java進行物件導向程式設計,物件導向是什麼意思

TestAdult.java

用java進行物件導向程式設計,物件導向是什麼意思

public class TestAdult { public static void main(String[] args) {

用java進行物件導向程式設計,物件導向是什麼意思

繼承?經理覺得小李設計的汽車設計圖非常棒,但是現在推崇新能源,於是需要將引擎改成電能發動機。於是小陳輕而易舉的將圖紙中汽油發動機部分改成引擎發動機,再重製一下關係就完成了新圖紙!這就是繼承的作用:是使用已存在的類的定義作為基礎建立新類,新的類可以擁有父類的特點,也可以衍生出更多的特點。這使得複用以前的程式碼非常容易,能夠大大縮短開發時間。

Person.java

用java進行物件導向程式設計,物件導向是什麼意思

class Person { // 定義人類

用java進行物件導向程式設計,物件導向是什麼意思

TestPerson.java

用java進行物件導向程式設計,物件導向是什麼意思

public class TestPerson {

用java進行物件導向程式設計,物件導向是什麼意思

多型?程式中定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在程式設計時並不確定,而是在程式執行期間才確定,即一個引用變數倒底會指向哪個類的例項物件,該引用變數發出的方法呼叫到底是哪個類中實現的方法,必須在由程式執行期間才能決定。因為在程式執行時才確定具體的類,這樣,不用修改源程式程式碼,就可以讓引用變數繫結到各種不同的類實現上,從而導致該引用呼叫的具體方法隨之改變,即不修改程式程式碼就可以改變程式執行時所繫結的具體程式碼,讓程式可以選擇多個執行狀態,這就是多型性。多型性增強了軟體的靈活性和擴充套件性。小李喜歡聽小鳥唱歌{麻雀,杜鵑,鸚鵡}

小李:窗外的鳥兒,給我唱首歌。

1.(鳥 bird = new 麻雀 )?

2.(鳥 bird = new 杜鵑 )?

3.(鳥 bird = new 鸚鵡 )?

鳥兒:bird.sing()~~~~~

小李:鳥兒唱的不錯,你是哪種鳥?

鳥兒: bird.shape()

小李:(—如果上面藍字定義的是3,是鸚鵡)哈哈!原來你是鸚鵡!

所以,多型的過程實質是一個抽象指令,讓一組具有相同行為單具有不同內容的個體協同工作的這樣的一個過程。

人無完人,但會完蛋,如有錯誤,懇請指出!


相關文章