面向?qū)ο缶幊?我的思想(3)
發(fā)表時(shí)間:2024-05-21 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]2.深入探討面向?qū)ο螅?.1“類型”的內(nèi)部細(xì)節(jié): 有了上面的知識(shí),我們現(xiàn)在就可以深入的挖掘類的內(nèi)部實(shí)現(xiàn)了。所有的知識(shí)點(diǎn)我都會(huì)圍繞著類與對(duì)象展開,在此之前,我希望你能夠確信對(duì)以上所介紹的基本內(nèi)容已完全掌握了! 是的,面向?qū)ο蟮木幊陶Z言最大的特色就是可以編寫自己所需的數(shù)據(jù)類型,以更...
2.深入探討面向?qū)ο螅?.1“類型”的內(nèi)部細(xì)節(jié): 有了上面的知識(shí),我們現(xiàn)在就可以深入的挖掘類的內(nèi)部實(shí)現(xiàn)了。所有的知識(shí)點(diǎn)我都會(huì)圍繞著類與對(duì)象展開,在此之前,我希望你能夠確信對(duì)以上所介紹的基本內(nèi)容已完全掌握了! 是的,面向?qū)ο蟮木幊陶Z言最大的特色就是可以編寫自己所需的數(shù)據(jù)類型,以更好的解決問題。我想我必須要幫你搞清楚“類,對(duì)象,屬性,方法它們之間的關(guān)系”!就像我前面所說的,人這個(gè)“類”是什么也做不了的,因?yàn)椤叭祟悺敝皇且粋(gè)抽象的概念,它不是實(shí)實(shí)在在的“東西”,而這個(gè)“東西”就是所謂的對(duì)象。只有人這個(gè)“對(duì)象”才能去工作。而類呢?類是對(duì)象的描述!對(duì)象從類中產(chǎn)生出來!此時(shí),對(duì)象具有類所描述的所有的屬性以及方法。-------一定要理解這句話。!也許你已經(jīng)有些不知所措了,沒關(guān)系!好好的回味一下,我再舉個(gè)例子!例如電視機(jī),電視機(jī)都有工作原理圖,那么什么叫電視機(jī)呢?只要它能夠?qū)崿F(xiàn)工作原理圖的所有功能的物體,我們都叫它電視機(jī)。你想想是不是這么一回事兒?可是,電視機(jī)原理圖是不能工作的,也就是這個(gè)原理圖不能收看節(jié)目,只有電視機(jī)這個(gè)“實(shí)體——即所謂的對(duì)象”才能收看節(jié)目,也就是說,從類生成出對(duì)象之后才算得上是真正的有意義!才能開始工作。此時(shí),電視機(jī)擁有電視原理圖所描述的所有的屬性及方法!明白了吧,呵呵!我先前介紹過,類是屬性與方法的集合。而這些屬性與方法可以被聲明為私有的(private),公共的(public)或是受保護(hù)(protected)的,他們描述了對(duì)類成員的訪問控制。下面我分別做一下介紹:1. 公共的(public):把變量聲明為公共類型的之后,那么就可以通過對(duì)象來直接訪問,一切都是暴露無遺的!也就是說,你的信用卡密碼別人也能夠直接得到。2. 私有的(private):如果把變量聲明為私有的情況就好多了,想要得到我的信用卡密碼,對(duì)象必須要調(diào)用專用的方法才能夠得到。3. 受保護(hù)的(protected):介紹繼承時(shí)再討論。4. 默認(rèn)控制訪問符(friendly)://JAVA中有而C++中沒有。為了實(shí)現(xiàn)數(shù)據(jù)的封裝,提高數(shù)據(jù)的安全性,我們一般會(huì)把類的屬性聲明為私有的,而把類的方法聲明為公共的。這樣,對(duì)象能夠直接調(diào)用類中定義的所有方法,當(dāng)對(duì)象想要修改或得到自己的屬性的時(shí)候就必須要調(diào)用以定義好的專用的方法才能夠?qū)崿F(xiàn)。你想想,你會(huì)把你的信用卡密碼公布出來嘛?呵呵!所以,我們提倡的是:“對(duì)象調(diào)方法,方法改屬性”;2.2通過實(shí)例看內(nèi)存分配:說了這么多,讓我們來看一個(gè)實(shí)例吧!比如:現(xiàn)在我們要編寫某家公司員工管理系統(tǒng),你認(rèn)為最合適的數(shù)據(jù)類型是什么?我認(rèn)為是員工個(gè)人!但是在面向過程的語言中,這樣做是不允許的,因?yàn)樗荒苁褂谜Z言中的內(nèi)部數(shù)據(jù)類型!而員工不在這個(gè)內(nèi)部數(shù)據(jù)類型之內(nèi)!也許有人會(huì)說可以用C語言中的struct,好注意!畢竟它是類的基礎(chǔ)!如果你以前是一名面C或B的程序員,請你忘掉這些,讓我們一起看看如何用類來實(shí)現(xiàn)這一切吧! 某家公司的員工是人類的一個(gè)特殊群體,它除了具備人類的所有特性與方法外,它還有額外的特性與方法,比如她有她的工資、信用卡密碼、作息時(shí)間等等,這些特性以及工作內(nèi)容,工作量等等這些方法。而在計(jì)算機(jī)中我們該如何定義這個(gè)類呢?下面我將寫出它的格式,讓你看看在計(jì)算機(jī)中它是張什么樣子的! /*在此我需要再次聲明的是,我用的是JAVA格式,在語法格式上它與C++大不相同!許多細(xì)節(jié)以及內(nèi)部操作都有諸多區(qū)別,而在思想上確實(shí)大同小異的*/ //employee.javapublic class employee{ private String name; //員工姓名 private int age; //員工年齡 private char sex; //員工性別 private float emolument; //員工薪水private boolean lunch; //員工午餐 //……等等public void heater(){ //這個(gè)方法是用來加工員工的午餐 lunch = true;}public void setName(String a){ //這個(gè)方法是修改員工的姓名 name= a;}public String getName(){ //這個(gè)方法是得到員工的姓名 return name;}//……等等}這樣我們就定義完了我們所需要的數(shù)據(jù)類型。現(xiàn)在,讓我們來看看它能夠干什么以及怎么工作!我想要做的是,工作室里有一個(gè)光桿司令叫“jingwei”,我修改它的名字后對(duì)對(duì)它進(jìn)行輸出,看看我是怎么做的吧!注意:請仔細(xì)觀察對(duì)象是如何調(diào)用方法的,它使用了“.”操作符!事實(shí)上是這樣的,對(duì)象調(diào)用公共的屬性或方法時(shí)就會(huì)使用“.”操作符。然而在C++中,如果定義一個(gè)同類型的指針,該指針調(diào)用此對(duì)象的方法時(shí),就會(huì)使用“->”操作符。更詳細(xì)的內(nèi)容清參閱相關(guān)書籍了!//workstation.java import java.awt.Graphics;import java.applet.Applet; public class workstation extends Applet{ private employee jingwei ; //對(duì)象的聲明,此時(shí)并不分配內(nèi)存! public void init(){ jingwei = new employee(); /*此時(shí)創(chuàng)建對(duì)象會(huì)調(diào)用構(gòu)造函數(shù),稍候介紹*/ jingwei.setName(“jw”); //設(shè)置我的名字 } public void paint(Graphics g){ g.drawString("my age is "+jingwei.getName(),10,10);//顯示我的年齡 }}輸出結(jié)果是: my name is jw這串字符串是在輸出窗口的x坐標(biāo)軸為10 px , y坐標(biāo)軸為10 px的位置。我現(xiàn)在要做的是,把上面的程序做個(gè)大解剖,讓你能夠看清楚它到底是怎么一回事兒!(我可不時(shí)帶你去看里面的匯編,呵呵,那個(gè)我也不會(huì):)