A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© twtzhongxin 中级黑马   /  2014-3-1 00:23  /  1162 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看交通灯的时候看到了面向对象方法设计,然后自己想了个比较复杂的情景想不太明白:人坐在椅子上用筷子吃碗里的饭。这个该怎么设计?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

6 个回复

倒序浏览
人坐在椅子上
人拿起筷子
人吃饭
回复 使用道具 举报
午夜b'Boy 来自手机 中级黑马 2014-3-1 07:30:23
藤椅
人坐着用一个函数设置状态,传递参数坐的什么椅子,吃饭设计一个函数传递吃什么用什么吃。
回复 使用道具 举报
class Person{
void sit(Chair cha){}
void eat(Util ut){}
}

class Chair{}

class Util{}
回复 使用道具 举报
人坐在椅子上用筷子吃碗里的饭

名词提取法  其中有   人(Person)   椅子(Chair)  筷子(Chopsticks) 碗(Bowl) 饭(Meal)

  1. /**
  2. * 人坐在椅子上用筷子吃碗里的饭
  3. * @author hao
  4. *
  5. */
  6. public class JavaDemo {
  7.         public static void main(String[] args) {
  8.                 Person p = new Person();
  9.                 Chair chair = new Chair();
  10.                 Chopsticks c = new Chopsticks();
  11.                 Bowl b = new Bowl();
  12.                 p.sit(chair);
  13.                 p.eat(c, b);
  14.         }
  15.        
  16. }
  17. /*
  18. * 人类   其中 有坐下与吃饭的动作
  19. */
  20. class Person{
  21.         //人坐下
  22.         public void sit(Chair c){
  23.                 c.sitPerson(new Person());
  24.         }
  25.         //人用筷子和碗来吃饭
  26.         public void eat(Chopsticks c,Bowl b){
  27.                 Meal  m = new Meal();
  28.                 c.getMeal(m);
  29.                 b.getMeal(m);
  30.         }
  31. }
  32. //椅子类
  33. class Chair{
  34.         //椅子可以让人坐
  35.         public void sitPerson(Person p){
  36.                 System.out.println("人坐在椅子上");
  37.         }
  38. }
  39. //筷子类
  40. class Chopsticks{
  41.         //用筷子夹饭吃
  42.         public void getMeal(Meal m){
  43.                 System.out.println("用筷子吃");
  44.         }
  45. }
  46. //碗类
  47. class Bowl{
  48.         //用碗盛饭
  49.         public void getMeal(Meal m){
  50.                 System.out.println("碗里的饭");
  51.         }
  52.        
  53. }
  54. //饭
  55. class Meal{
  56.        
  57. }
复制代码
可能想的多些,不知道这样回答可以嘛  类的属性没有添加  动作只是打了一句话  再添点属性就好玩啦   比如谁坐在椅子上  吃的是什么饭  再整个构造方法碗是谁的  等等

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0
人画圆 是circle.draw();
人关门 是door.close();
那人吃饭不该是 rice.eat(); 吗?
回复 使用道具 举报
//定义用户类 class Consumer {         //定义成员变量用户名name         String name;         Consumer(name)         {                 this.nanme=name;         } } //定义预定餐桌号 class Desk {         //定义成员变量餐桌号num         int num;         Desk(num)         {                 this.num=num;         } } //定义预定餐具 class TableWare {         //定义成员变量餐具tool,tool2         String tool1;         String tool2;         TableWare(tool1,tool2)         {                 this.tool1=tool1;                 this.tool2=tool2;         } } //定义预定菜单 class Meal() {     //定义成员变量菜名fish,rice         String fish;         String rice;         Meal(fish,rice)         {                 this.fish=fish;                 this.rice=rice;         } } class RenDemo  {         public static void main(String[] args)          {                 Consumer con=new Consumer("张XX");                 Desk desk=new Desk(12);         TableWare tw=new TableWare(cs1,sn1);                 Meal ml=new Meal(fish1,rice1);                 System.out.println("定餐人"+con.name+"座位号"+desk.num+"预定餐具"+tw.tool1+" "+tw.tool2                         +"预定餐"+ml.fish+" "+ml.rice);         } }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马