999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向抽象的編程思想分析

2020-12-16 05:24:34任憲臻任美玲
魅力中國 2020年38期

任憲臻 任美玲

(1.北京信息職業技術學院 軟件與信息學院,北京 100018;2.煙臺南山學院 工學院計算機系,山東 煙臺 265700)

Java 是一種面向對象的編程語言,它吸收了C++語言的優點,如面向對象、提供豐富的應用程序接口等,同時它又舍棄了C 類語言中對象資源釋放和復雜的指針操作等問題,以及C++語言中晦澀難懂的多繼承等不足。面向對象的程序設計思想是程序設計歷史上的一個非常重要的里程碑。對象既可以是有形的實體,也可以是無形的,如一個學生、一門課程,甚至一項計劃都可以看作對象。當我們應用面向對象的編程語言java 進行程序設計時,我們就要學會應用面向對象的思想來考慮和解決問題。在面向對象的程序設計方法中,對象是一個實體,用來描述客觀的事物。當我們應用面向對象的方法解決問題時,首先最重要的一步就是對現實世界中的對象進行分析、歸納,從而找出要解決的問題相關的對象。

在面向對象的編程思想中,用對象的屬性描述對象的靜態特征,用方法體現對象的動態行為,對象的屬性和方法是對象的兩個重要因素。比如有一個形狀是一個對象,這個形狀的顏色、頂點數、邊數等靜態特征是這個形狀對象的屬性,而形狀的描繪、形狀的打印輸出等動態行為就是這個形狀對象所擁有的方法。因為形狀類具體又分為三角形、四邊形等,所以實例化一個形狀類沒有任何意義,在具體應用的時候,我們應該去實例化得到一個具體的三角形類、四邊形類等,這個地方就需要用到抽象的概念。在java程序設計中,抽象類用關鍵字abstract 修飾。

當我們在進行java 程序設計的時候,經常會用到抽象類,因為抽象類只關注“做什么”,而不需要關注“怎么做”,這就把要實現的操作和如何實現這些操作的具體的細節分離開來,這樣我們就可以只關注程序的設計,而不必拘泥于這些操作的具體實現細節,這就避免了花費大量的精力和時間去描述算法的具體細節。比如,在地圖設計過程中,我們優先考慮地圖的整體輪廓,而不是先去考慮某個城市中的街道和門牌號等細節問題。在抽象類中,主要用來抽象出重要的行為標準,而具體行為的實現則應該由該抽象類的非抽象子類去實現,在這些子類中實例化具體的對象,按照要求完成具體的程序功能實現。當我們使用java 進行程序設計時,通常在抽象類中聲明若干個抽象方法,而這些方法的具體實現細節內容則交給它的非抽象子類來完成。所以,面向抽象的編程思想就是指當我們在設計類的時候,不是讓該類面向具體的類,而是面向抽象類。

現在我們通過一個實例來解釋說明面向抽象的編程思想。在這個例子中,我們實現計算一個錐體的體積,我們知道錐體的體積=1/3×(椎體的底面面積×高)。從椎體的體積公式中我們可以注意到,計算椎體體積的關鍵是計算出椎體的底面積,而當我們在計算椎體的體積的時候,我們不關心這個椎體的底是三角形、圓形,還是平行四邊形等具體的形狀,我們關心的重點是這個底面圖形能否計算出面積。因此,當我們在設計求椎體體積的類的時候,不應該讓這個椎體的底面是某個具體的形狀類聲明的對象,如果是這樣,求錐體體積這個類就會對底面這個具體的形狀類有依賴性,這樣就會缺乏普遍性,很難應付經常發生變化的用戶需求。因此我們需要應用面向抽象的思想來設計并實現。

首先,我們定義一個抽象類Bottom,在這個類中只有一個計算底面積的抽象方法,不在考慮如何求底面積的細節問題,類Bottom 的定義如下:

public abstract class Bottom {

public abstract double getArea();}

然后我們就可以來定義具體的底面類,這個底面類繼承自Bottom 類,比如我們可以定義底面是圓形的類,那么這就是一個圓錐,也定義底面是三角形的類,那么就是一個三角錐......此處我們定義一個三角形類Triangle,在這個類中必須要重寫Bottom 類中的getArea()方法,其定義代碼如圖1 所示。

現在我們就可以面向抽象類Bottom 來定義椎體類Centrum,即Centrum 這個類應該把Bottom 類型的對象作為自己的成員變量,該成員變量可以調用Bottom 的子類重寫的方法getArea()來得到底面積,這樣椎體類Centrum 就把計算底面面積的任務交給了Bottom類的子類來完成,也就是用抽象類的非抽象子類負責完成用戶的各種需求。通過這種方式,錐體類Centrum 的設計不再依賴任何的具體類,而是面向抽象類Bottom,也就是在Centrum 類中,成員變量bottom 是用抽象類Bottom 聲明的對象,而不是使用具體類聲明的對象,Centrum 類的定義如圖2 所示。當我們進行了這樣的類定義之后,我們就可以來獲得三角錐的體積。

通過上述實例,我們可以看到,通過應用面向抽象的思想來設計錐體類Centrum,使得這個類不再依賴任何具體類,這樣每當需要增加新的Bottom 類的子類時,不再需要修改Centrum 類的任何代碼,比如我們可以隨時增加其他形狀的底面,如矩形、圓形等等。因此,為了適應隨時可能發生變化的用戶需求,我們在程序設計的過程中,要應用面向抽象的編程思想,其核心是讓抽象類的一個非抽象子類去處理類中每種可能發生變化的情況,從而使得類的設計者從具體實現細節中脫離出來,專注于設計“做什么”,而不是“如何做”。

主站蜘蛛池模板: 成AV人片一区二区三区久久| 亚洲综合经典在线一区二区| 3344在线观看无码| 国产免费高清无需播放器| 91亚洲精品第一| 日韩123欧美字幕| 99精品高清在线播放| 国产成人精品日本亚洲| 成人无码一区二区三区视频在线观看 | 国产成人精品一区二区秒拍1o| 成人在线不卡视频| 91小视频在线播放| 亚洲综合色区在线播放2019| 久久久受www免费人成| 国产精品久久久久久影院| 伊人婷婷色香五月综合缴缴情| h网址在线观看| 青青草a国产免费观看| 无码视频国产精品一区二区| 亚洲乱伦视频| аⅴ资源中文在线天堂| 真人免费一级毛片一区二区| 日本欧美午夜| 亚洲成网777777国产精品| 欧美日韩高清在线| 成人亚洲国产| 最新亚洲人成网站在线观看| aa级毛片毛片免费观看久| 好吊日免费视频| 三上悠亚在线精品二区| 国产原创自拍不卡第一页| 欧美精品亚洲二区| 午夜电影在线观看国产1区| 中文字幕久久精品波多野结| 亚洲人成影视在线观看| 久久国语对白| 1024你懂的国产精品| 婷婷综合缴情亚洲五月伊| 无码福利日韩神码福利片| 国产亚洲高清在线精品99| 久久久成年黄色视频| 99精品影院| 久久永久免费人妻精品| 久久香蕉国产线看观看亚洲片| 92午夜福利影院一区二区三区| 中国一级特黄大片在线观看| 乱色熟女综合一区二区| 国产精品3p视频| 国产欧美日韩精品综合在线| 欧美日本激情| 国产精品成人免费视频99| 国产精品无码AⅤ在线观看播放| 精品久久国产综合精麻豆| 色偷偷一区二区三区| 国产尤物在线播放| 久久网综合| 国产视频只有无码精品| 亚洲人成影视在线观看| 欧美日韩精品在线播放| 国产精品美女自慰喷水| 中文字幕在线观看日本| 亚洲精品无码专区在线观看| 色九九视频| 欧美日本二区| 久操线在视频在线观看| 最新亚洲人成无码网站欣赏网| 午夜精品久久久久久久99热下载| 久久91精品牛牛| 青青青视频免费一区二区| 九九九国产| 91成人在线免费视频| 97超级碰碰碰碰精品| 一级毛片不卡片免费观看| 欧美日韩中文字幕在线| 精品国产成人三级在线观看| 国产亚洲视频免费播放| 国产精品无码一二三视频| 国产精品久久国产精麻豆99网站| 欧美中文字幕一区二区三区| 91成人在线观看视频| 天堂亚洲网| 99久久无色码中文字幕|