摘要:Java是一門編程語言,其核心思想就是面向?qū)ο蟆D呛沃^面向?qū)ο竽兀纱嗽撐闹饕v述了Java語言中面向?qū)ο蟮乃枷搿?/p>
關(guān)鍵詞:類;對(duì)象;封裝性;繼承性;多態(tài)性
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)33-9276-02
Discuss the Object-Oriented Programming of Java
CHEN Yue-feng
(School of Qiuzhen, College of Huzhou Teachers, Huzhou 313000, China)
Abstract: Java is a programming language; its core idea is the object-oriented. Then, what is the object-oriented, thus this paper describes object-oriented thinking of Java language.
Key words: class; object; encapsulation; inheritance; polymorphism
面向?qū)ο笏枷胧蔷幊陶Z言從低級(jí)向高級(jí)發(fā)展的結(jié)果,是人類思維自然化的過程。在Java語言中,其面向?qū)ο髢?nèi)容主要包括類,對(duì)象,封裝性,繼承性,多態(tài)性等。
1 類和對(duì)象
大千世界都是由一個(gè)個(gè)對(duì)象組成的,一張桌子,一幢房子,一個(gè)人,一輛汽車……都是對(duì)象,正所謂萬物皆對(duì)象。然而把同一類對(duì)象的共同特征抽取出來用來描述這些對(duì)象的抽象集合就是類。對(duì)象的屬性和行為抽象出來分別對(duì)應(yīng)類的成員變量和方法。用個(gè)例子來說明,人的共同屬性有性別、年齡、身高、體重等,共同行為有吃飯,睡覺,跑步等。把這些共同的屬性和行為抽象為人這個(gè)類如下:
class Person {
String sex;//性別
Int age;//年齡
Int stature ;//身高
Float weight;//體重
voideat(){}//吃飯
voidsleep(){}//睡覺
voidrun(){}//跑步
}
類集合抽象出來后,在程序中需要使用關(guān)鍵字new來創(chuàng)建對(duì)象。程序中一旦對(duì)象被創(chuàng)建出來,各類對(duì)象的“行為”就可以完成程序的各種功能。
2 封裝性
封裝性是為了隱藏類內(nèi)部信息而創(chuàng)建出來的一種機(jī)制。其包含兩層含義:
1)類是一個(gè)不可分割的單位,變量和對(duì)變量的操作組成了類。
2)類中必須提供對(duì)外聯(lián)系的方法,但又得盡可能隱藏某些實(shí)現(xiàn)的細(xì)節(jié)。
為了實(shí)現(xiàn)隱藏類內(nèi)部的信息,Java定義了類及其成員訪問的四種權(quán)限修飾符:public(公有)、protected(保護(hù))、default(默認(rèn))、private(私有)。
1)public修飾的成員,可以被程序中所有的類訪問,它的訪問權(quán)限是最低的。
2)protected修飾的成員,可以被類內(nèi)部,同一包(package)中的類和其子類訪問。
3)default修飾的成員,可以被類內(nèi)部和同一個(gè)包中的類訪問,其他地方的類都不可以訪問,包括其子類。
4)Private修飾的成員,只能被類內(nèi)部訪問,由此實(shí)現(xiàn)類內(nèi)部信息隱藏最重要的關(guān)鍵字是private,它的訪問權(quán)限是最高的。
3 繼承性
繼承性是一種由已有的類創(chuàng)建新類的機(jī)制,是面向?qū)ο蟪绦蛟O(shè)計(jì)中實(shí)現(xiàn)軟件可重用性的最重要手段。
3.1 繼承的概念
由一個(gè)已有的類,通過使用關(guān)鍵字extends定義一個(gè)新類,稱為新類繼承了已有類。新類被稱為子類或派生類,已有類被成為父類或基類。用個(gè)例子來說明:
父類(動(dòng)物)class Animal {
String stature;//身高
String weight;//體重
void eat(){}//進(jìn)食
}
子類(狗)class Dog extends Animal {
String hairColor; //毛色
void run(){}//跑步
}
3.2 繼承的作用
通過繼承,子類自動(dòng)擁有父類的所有成員變量和方法(除構(gòu)造方法),使得父類的優(yōu)良特性得以代代相傳并且大大減少了子類的代碼量。繼承是實(shí)現(xiàn)軟件可重用性的一種重要方式,增強(qiáng)了軟件的可擴(kuò)充性,提高了軟件的可維護(hù)性。對(duì)此我們?cè)谠O(shè)計(jì)類時(shí),一般將通用性功能設(shè)計(jì)在父類中,將特殊性功能設(shè)計(jì)在子類中。
3.3 繼承的原則
1)只允許子類單繼承和多層繼承,不允許多繼承。
2)子類可以增加自己的成員變量和方法。
3)子類可以重定義父類的成員變量和方法。
4 多態(tài)性
多態(tài)又稱動(dòng)態(tài)綁定,是指程序運(yùn)行時(shí),系統(tǒng)根據(jù)參數(shù)或?qū)ο蟮膶?shí)際類型調(diào)用其相應(yīng)的方法。方法的多態(tài)性主要有重載和覆蓋。
4.1 方法重載
重載表現(xiàn)為同一個(gè)類中的多態(tài)性,同一個(gè)類中可以定義多個(gè)名字相同參數(shù)個(gè)數(shù)或參數(shù)類型不同的方法。程序在運(yùn)行時(shí),根據(jù)參數(shù)個(gè)數(shù)或參數(shù)類型,調(diào)用其相應(yīng)的方法。
4.2 方法覆蓋
覆蓋又稱重寫,表現(xiàn)為父類與子類間的多態(tài)性。方法重寫時(shí)應(yīng)注意相應(yīng)的原則:
1)重寫方法必須和被重寫方法具有相同的方法名,參數(shù)列表和返回值類型。
2)重寫方法不能使用比被重寫方法更嚴(yán)格的訪問權(quán)限。
方法覆蓋所表現(xiàn)出來的多態(tài)性必須具備以下條件:
1)要有繼承。
2)要有重寫。
3)父類引用指向子類對(duì)象。
5 結(jié)束語
面向?qū)ο笏枷氲漠a(chǎn)生是編程語言發(fā)展史上質(zhì)的飛躍,它使問題域中的各種關(guān)系明朗化,各類對(duì)象形象化。三大特征機(jī)制(封裝性,繼承性,多態(tài)性)使程序的設(shè)計(jì)更加嚴(yán)謹(jǐn),結(jié)構(gòu)更加清晰。
參考文獻(xiàn):
[1] 葉核亞.Java 2程序設(shè)計(jì)實(shí)用教程[M].2版.北京:電子工業(yè)出版社,2007.
[2] 馬魯寧.JAVA語言面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)[J].黑龍江科技信息,2007(2):52.
[3] 笪斌,蘇建元.實(shí)現(xiàn)面向?qū)ο蟮睦^承性、封裝性和多態(tài)性[J].電腦學(xué)習(xí),2005(6):18-19.
[4] 孫巍.面向?qū)ο髾C(jī)制在Java中的運(yùn)用[J].長(zhǎng)春教育學(xué)院學(xué)報(bào),2007(4):38-39.
[5] 李文芳.面向?qū)ο蟮奶卣髟贘ava中的體現(xiàn)[J]. 山西經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào),2005(3):59-60.