作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] java结构怎麽写?
时间Mon Jan 28 16:24:26 2013
这实在是介於一个很尴尬阶段的问题
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
1F:推 j999444:班狗 XDD 01/31 04:59
2F:→ DeathWatch:我也是java初学者但是我看到他文章也很囧 03/31 20:16