亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何設計類與類之間的關系

如何設計類與類之間的關系

瀟瀟雨雨 2019-04-19 16:11:29
如何設計類與類之間的關系:比如A類(人類)B類(撲克),A類(人類)C類(汽車),A類(人類)D類(椅子)像這種同一個類與其他不同類之間又有關聯,怎么設計呢?
查看完整描述

2 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

其實分類,主要還是要看你準備抽象到什么地步。
舉個例子,問題說道了"玩法","操作","使用",他們都可以抽象成“方法”,只不過是不同的應用而已
"撲克","汽車","椅子",這些都是需要用到的東西,把它們抽象成“物件”
下面為了方便理解我用的名字基本都是中文,其實學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-19
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

定義一個接口
javapublicinterfaceUse{
publicvoiduseBy(Personp);
}
為BCD定義一個父類,實現接口Use
javapublicclassItemimplementsUse{
@Override
publicvoiduseBy(Personp){
//dosomething
}
}
BCD類繼承類Item,并覆蓋useBy方法(或者重載?比如撲克有多人玩)
面向對象學的不好,拋磚引玉了~
                            
查看完整回答
反對 回復 2019-04-19
  • 2 回答
  • 0 關注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號