为了账号安全,请及时绑定邮箱和手机立即绑定

如何设计类与类之间的关系

如何设计类与类之间的关系

湖上湖 2019-04-08 09:21:34
如何设计类与类之间的关系:比如A类(人类)B类(扑克),A类(人类)C类(汽车),A类(人类)D类(椅子)像这种同一个类与其他不同类之间又有关联,怎么设计呢?
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

其实分类,主要还是要看你准备抽象到什么地步。
举个例子,问题说道了"玩法","操作","使用",他们都可以抽象成“方法”,只不过是不同的应用而已
"扑克","汽车","椅子",这些都是需要用到的东西,把它们抽象成“物件”
下面为了方便理解我用的名字基本都是中文,其实学OO的概念,不要把它学死,下边的使用只是一种方式,从不同的角度去看去抽象,能写出各种各样的东西。
比如说:下边我把怎么使用这个东西的方法写在了“人类”里,但你想想,也许应该是“人类”拿到了这样东西就会用了而不是我告诉“人类”怎么用,又或者说这个东西它能这样用,而不是人类只会这么用。
理解的是OO的概念,帮助你将来去更有效更便利的写code就可以了。
publicclass物件{
privateString名字;
public物件(String名字){
this.名字=名字;
}
publicStringget名字(){
return名字;
}
publicvoidset名字(String名字){
this.名字=名字;
}
}
publicclass方法{
privateString名字;
public方法(String名字){
this.名字=名字;
}
publicStringplay(){
return名字;
}
publicStringget名字(){
return名字;
}
publicvoidset名字(String名字){
this.名字=名字;
}
}
publicclass人类{
privateString名字;
private物件东西;
private方法使用;
public人类(String名字,物件东西,方法使用){
this.名字=名字;
this.东西=东西;
this.使用=使用;
}
publicvoidapply(){
System.out.println(get名字()+""+get使用().get名字()+""+get东西().get名字());
}
public物件get东西(){
return东西;
}
publicvoidset东西(物件东西){
this.东西=东西;
}
public方法get使用(){
return使用;
}
publicvoidset使用(方法使用){
this.使用=使用;
}
publicStringget名字(){
return名字;
}
publicvoidset名字(String名字){
this.名字=名字;
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
人类a=new人类("A",new物件("扑克"),new方法("玩法"));
a.apply();
人类b=new人类("B",new物件("汽车"),new方法("操作"));
b.apply();
人类c=new人类("C",new物件("椅子"),new方法("使用"));
c.apply();
}
}
                            
查看完整回答
反对 回复 2019-04-08
?
手掌心

TA贡献1942条经验 获得超3个赞

定义一个接口
javapublicinterfaceUse{
publicvoiduseBy(Personp);
}
为BCD定义一个父类,实现接口Use
javapublicclassItemimplementsUse{
@Override
publicvoiduseBy(Personp){
//dosomething
}
}
BCD类继承类Item,并覆盖useBy方法(或者重载?比如扑克有多人玩)
面向对象学的不好,抛砖引玉了~
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 405 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信