Re: [問題] java結構怎麼寫?
這實在是介於一個很尷尬階段的問題
ps. 引言先後順序有變動,但內容都沒改
※ 引述《jerryozoz (Jerry)》之銘言:
: 以前是學c,最近剛好要用java寫個程式
: 只是物件導向一直沒學好
: 想問一個用物件導向的例子
: 有人可以告訴這:ww種狀況應該用extends,implement,abstract嗎?
: 抱歉 程式有點弱,謝謝囉~~
我想,你隨便去找一本你覺得看起來像地球人寫的 Java 入門書
應該都會手把手地教你 OO 的東西
所以啥時候用 extend/implement
啥時候用 abstract class/interface
請自己去看書,看完不懂再來這問你看不懂的地方
還有,extend/implement 是動詞,abstract class/interface 是名詞
不應該把他們擺在一起講說什麼時候用
(當然要凹說哪些時候在 Java code 裡頭用這些「字」那也說得通啦)
我這邊是要解釋更之前的東西
: 現在我要設定好幾個班級,每個班級一個.java
: 一個班級裡有好幾個人名
: 比如說
: a.java裡 string name[]={王小明,王中明,王大明}
: b.java裡 string name[]={陳小美,陳大美}
: 我希望我可以另外寫一個.java
: 然後可以判斷出例如 王大明在哪一個.java裡面
: 並呼叫這個.java的一些function
: 基本上班級的.java格式都一樣
「每個班級一個.java」這句話本身帶有一種很詭異的意思
我不太確定你是分不清 class/object 的差別,還是?
通常在 Java 的領域當中,.java 就是一個檔案
但是一個 .java 未必就是一個 class
也可以有好幾個 class(即使 public class)擠在同一個 .java 當中
好,先不管什麼 class 之類的鬼名詞
假設你的 a.java 是代表一年A班、b.java 是代表一年B班
然後你也發現了,其實「班級」的「規格」都一樣
只是老師不同、學生不同、課表不同
但是都會有導師、會有學生、都要上課
那麼,能不能比照 function/method 一樣,把相同的部份抽出來呢?
答案是,在 OO 的事情是沒問題的!
於是我們就抽出一組「規格」,規格裡頭定義了「資料」跟「行為」
也就是:
班級裡頭會包含:
導師(一個人類)
學生(數個人類)
班狗(一隻犬類)
教室(一個建築物)
班級會有這些行為:
上課(開始時間、結束時間)
下課(開始時間、結束時間)
家長會
是不是有某個學生(人類姓名)
而這個「規格」在 Java 裡頭就是「class」
「資料」就是 field/attribute、「行為」就是 method
然後實際上是用這個「規格」去組成一個實際的班級
class 班級 {
//blahblah
}
//somewhere
班級 一年A班 = new 班級();
一年A班.指定導師(孔子);
//
這時候的「一年A班」就是一個 instance,或是說是一個 object
你先有這些想法,再來看那些入門書
或著是回頭看你問的問題
你就會知道我(們)看到
然後可以判斷出例如 王大明在哪一個.java裡面
會有多麼不知所措了...
另外你也可以去 #18lFux9V (OOAD)
如果你 C 結構化程式語言的概念很習慣
那或許這篇能幫助你踏進 OO 的世界
====
這次居然想不出故事...... [遮臉]
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.202.140
推
01/31 04:59, , 1F
01/31 04:59, 1F
→
03/31 20:16, , 2F
03/31 20:16, 2F
討論串 (同標題文章)