WEB 开发 开发语言 Java 技术 .Net 技术 数 据 库 硬件使用
图象媒体 Linux/Unix 移动平台 嵌入开发 Windows 专区 软件工程
Ajax 技术 | ASP | PHP | ASP.NET | C# | JSP | Access | Oracle | 网页设计 | Flash | 安全专题 | IIS | VC/MFC | Delphi | C/C++
 你的位置:首页 > Java 技术 > J2SE / 基础类

关于类的设计
[ 来源:ITWENKU 时间:2006-9-24 0:27:02 | 浏览:190人次 ]

假设我现在想设计一个"车"类,和一个"人"类,我需要一个方法,就是"人开车",请问这个方法应该放在哪个类中比较好,当然两个类中都有办法实现,但总有一种方案会实现的比较完美,请大家说明为什么这么设计的原因...


你自己也说了嘛
"人开车"当然放到"人"类啦


“人开车”是谁的动作啊?
是“人”的,那就“人”去实现。


当然是人类了


你可以这样想 "人类"是要"开"是一个动作 "车类"要"移动"是另外一个动作
当"人类"的"开"的动作 作用在"车类" 的动作上时 车才移动

是比较绕 呵呵 实现的方法有好多 看你怎么想啦


use-a


如果把方法写在"人"类上,那不是一但有一个对象需要人来操作就得在"人"上面加个方法吗,如果放在"车"类里面,一旦我需要什么方法我就接收人的引用不就行了,那样想要生成"飞机"类\"电视"类等等,不需要直接改"人"这个类就行了


当然是人类中了,人是主语呀


人类中


如果把方法写在"人"类上,那不是一但有一个对象需要人来操作就得在"人"上面加个方法吗,如果放在"车"类里面,一旦我需要什么方法我就接收人的引用不就行了,那样想要生成"飞机"类\"电视"类等等,不需要直接改"人"这个类就行了

__________

你的这段话前后矛盾。方法写在车类中,那么飞机就和人没有关系,你就还得在飞机类写个方法去开飞机,但是你只要写在人类中,将飞机作为参数传进去,只要接口一样不就方便了?


飞机类 车类 都有个方法run()
然后人类 有个方法去调用run()


interface Vehicle{
void run();
...
}

interface Man{
void drive(Vehicle aVehicle);
}


开车当然写在人类里了

但是车类里应该有个车启动


人类。。。
就像是人吃饭,当然放在人里了,总不能放在饭里吧。。。


emin_lee() 的不错。
interface Vehicle{
void run();
...
}

interface Man{
void drive(Vehicle aVehicle);
void drive(Plane aPlane);
void drive(Tank aTank);
...
}




interface Vehicle{
void run();
...
}

class Plane implements Vehicle{
public void run(){}
}

class Tank implements Vehicle{
public void run(){}
}

interface Man{
void drive(Vehicle aVehicle);
...
}



应该用人类包含ABSTRACT的驾驶方法,然后实例化一个司机的对象,覆盖那个驾驶的方法...应该可以吧...


如果人开车 那就是主动式 在人的类中设计一个接口,把车作为参数
如果相反 那就是被动式 在车的接口中设计一个接口 同样可以实现


开车当然写在人类里了

但是车类里应该有个车启动



人类
但是要实例化一个车类


同意接口或者ABSTRACT的方法,统一接口,扩充性好

 相关文章
·类的定义
·如何在java中实现 press any key to continue
·用队列实现对一个数组的归并排序,求算法。
·关于数组的问题
·socket中传输图片的问题
·高手指导下啊,看不明白

 最新更新
在java中有哪个方法可以解决下面的问题啊:如取得一个雇员编号,当雇员编号<10需要在前面补0
关于static变量的用法
请问如何设置eclipse是其使用sun的Java编译器,而不是它自己的,谢谢
todo的使用?
读取大图片总是不行高手执教
有个关于JAVA向上转型的问题
如何改变键盘的输入值
FileReader与FileWriter读写"*。txt"的问题
如何将一个txt文件,读取到一个String数组里面
跟抽象类有关的问题
客户端连接服务器的时候,能绑定自己的端口号吗?
请问从socket取得的InputStream的readLine()方法是不是自动阻塞的?
 版权所有:中国IT问库
copyright © 2006 www.itwenku.com all rights reserved.