面向对象的概述
?? 什么是面向?qū)ο?#xff1f;
???????? 從學(xué)習(xí)VB開始,就一直在說面向?qū)ο?#xff0c;面向?qū)ο蟆!?#xff01;@¥@#%¥@!。。說了多少遍,在軟工之前,也一直沒有接觸到一個明確的定義。
?????? 在軟件工程中,Coad和Yourdon給出了一個定義:
面向?qū)ο?/span>=對象+類+繼承+通信
如果一個軟件系統(tǒng)是使用這樣4個概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮摹?/span>
如圖,對象a為類a的一個實(shí)例,類a沒有方法b,但是如果某種程序設(shè)計(jì)語言支持多重繼承的話,那么,對象a可以從對象b繼承方法b,從而簡化了代碼。另外,對象和對象之間還存在著通信,消息是一個對象與另一個對象的通信單元。
例如:
?
public class Account {private String no;private String password;private int balance; public Account(String accounts,String pw,int num) {no=new String(accounts);password=new String(pw);balance=(num>0?num:0);}public String getNo(){return no;}public int getBalance() {return balance;}public int putMoney(int num) {if(num>0){balance+=num;return num;}return 0;}public int getMoney(int num) {if(num<=0)return 0;if(num>balance)return 0;balance-=num;return num;}public boolean setPassword(String pw) {password=new String(pw);return true;}public boolean check(String accounts,String pw) {if(no.equals(accounts)&&password.equals(pw))return true;elsereturn false; } }?
????? 如上圖,這是ATM機(jī)中的一段代碼,這段代碼定義了一個賬戶,這個賬戶有三個屬性:no,password,balance.后面的Account(Stringaccounts,String pw,int num)是這個類的構(gòu)造方法,構(gòu)造方法后面是這個類的方法,通過這些方法,可以實(shí)現(xiàn)對對象屬性值的修改。
??? 當(dāng)在ATM機(jī)中,可以用Account 我的賬戶=new Account("a","1",100),來實(shí)例化一個新的賬戶對象。然后對新對象的使用就像使用VB中的對象那樣,直接對屬性進(jìn)行操作就行。
?????? 感覺面向?qū)ο蟮木幊毯兔嫦蜻^程的編程最大的不同就是數(shù)據(jù)都封裝在了對象里面,沒有了獨(dú)立的過程和函數(shù);通過繼承和接口來實(shí)現(xiàn)代碼的復(fù)用。。。。(還在感覺中。。)
?
轉(zhuǎn)載于:https://www.cnblogs.com/riasky/p/3481935.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
- 上一篇: 联想天逸310怎么唤休眠醒 联想电脑如何
- 下一篇: win10系统开机总是蓝屏怎么解决 wi