»
遊客:
加入
|
登入
(帳號有問題請連絡TWed2k@gmail.com)
TWed2k
»
程式開發討論區
» [求助]到底何謂物件導向?
可打印版本
|
推薦給朋友
|
訂閱主題
|
收藏主題
|
純文字版
16
2/2
<
1
2
論壇跳轉 ...
主題:
[其他]
[求助]到底何謂物件導向?
字型大小:
小
|
中
|
大
|
巨
←
→
rakish
鐵驢友〔初級〕
. 積分:
20
. 文章:
81
. 收花: 65 支
. 送花: 37 支
. 比例: 0.57
. 在線: 459 小時
. 瀏覽: 7020 頁
. 註冊:
7438
天
. 失蹤:
1422
天
. taiwan
#16 : 2012-1-15 12:02 AM
只看本作者
送花
(6)
送出中...
nora 解釋的很清楚.... 我在舉個例子說明一下
不知道什麼是物件導向 其實滿正常的 因為我看過很多的工程師
寫了很多年 java 也頂多只是用 java 在寫 c 而已 ...
搞不太清楚什麼是物件導向
物件導向 並不僅僅是 封裝 繼承 多型 ...
物件導向其實就只是一種思維 ...
簡單的講就是 everything is object ...
所面臨的問題要用物件的角度來思考 ..
透過物件與物件彼此之間的互動 ..
來處理程序
這樣講可能有點抽象... 舉個簡單的範例 ..
假設今天要寫一個計算機 ...處理使用者的輸入 "1+2"
過去的寫法可能是
{
string input = "1+2";
for(int i=0;i<input.length;i++){
if(input
=='+')return add(input[i-1],input[i+1]);
if(input
=='-')return sub(input[i-1],input[i+1]);
}
我把它簡寫成...
switch{
'+' : return add(1,2);
'-' : return sub(1,2);
}
就是說如果運算式中遇到 + - 符號 分別會做這件事情
這也就是過去的方法 用一個 main function 去驅動你的程式的流程 得到返回的結果
如果有了一點點物件的想法以後
可能會想到"1 "數字本身就是一個物件
這個物件應該是要具有 add 與 sub 的方法 {假設寫成Num(1) 這個物件}
數字本身可以透過add或sub返回另一個數字
所以可能會寫成 {這邊省略掉 每一個字元轉成對應物件的過程}
{
switch{
'+' : return Num(1).add(Num(2));
'-' : return Num(1).sub(Num(2));
}
}
這樣就比較像是 物件與物件之間的彼此合作
但是在深入一點想 +,- 本身也是一個物件 這個物件就是在處理 兩個數字物件的運算
也就是 有一種物件叫做 Operator(Num,Num) 裡面有一個方法 execute 他會回傳一個 Num 物件
所以可能會寫成 {這邊省略掉 每一個字元轉成對應物件的過程}
new AddOperator(Num(1),Num(2)).execute();
new SubOperator(Num(1),Num(2)).execute();
這邊可能會有點誤解..怎麼感覺又變回傳統的方法 add(x,x);
但是 AddOperator 中 execute 的方法可能是這樣寫的
{
Num execute(){ return Num(1).add(Num(2));}
}
但是如果再深深入一點想 本身 "1+2" 本身就是一個物件...
這個物件叫做 Expression
所以應該是要寫成 return new Expression("1+2").execute();
詳細的內容就不再寫了
不知道這樣的說明有沒有比較清楚一點點 ...
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
16
2/2
<
1
2
快速回覆
表情符號
更多 Smilies
字型大小 :
小
|
中
|
大
|
巨
[完成後可按 Ctrl+Enter 發佈]
溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別
關閉
表情符號
關閉
Discuz! 代碼
使用個人簽名
接收新回覆信件通知
發表時自動複製內容
[立即複製]
(IE only)
論壇跳轉 ...
所在時區為 GMT+8, 現在時間是 2024-11-21 08:27 PM
清除 Cookies
-
連絡我們
-
TWed2k
© 2001-2046
-
純文字版
-
說明
Discuz!
0.1
| Processed in 0.018566 second(s), 6 queries , Qzip disabled