黑马程序员技术交流社区
标题:
面向对象的方法设计
[打印本页]
作者:
twtzhongxin
时间:
2014-3-1 00:23
标题:
面向对象的方法设计
看交通灯的时候看到了面向对象方法设计,然后自己想了个比较复杂的情景想不太明白:人坐在椅子上用筷子吃碗里的饭。这个该怎么设计?
作者:
xietansheng
时间:
2014-3-1 02:27
人坐在椅子上
人拿起筷子
人吃饭
作者:
午夜b'Boy
时间:
2014-3-1 07:30
人坐着用一个函数设置状态,传递参数坐的什么椅子,吃饭设计一个函数传递吃什么用什么吃。
作者:
乔青山
时间:
2014-3-1 08:05
class Person{
void sit(Chair cha){}
void eat(Util ut){}
}
class Chair{}
class Util{}
作者:
郝大龙0104
时间:
2014-3-1 09:18
人坐在椅子上用筷子吃碗里的饭
名词提取法 其中有 人(Person) 椅子(Chair) 筷子(Chopsticks) 碗(Bowl) 饭(Meal)
/**
* 人坐在椅子上用筷子吃碗里的饭
* @author hao
*
*/
public class JavaDemo {
public static void main(String[] args) {
Person p = new Person();
Chair chair = new Chair();
Chopsticks c = new Chopsticks();
Bowl b = new Bowl();
p.sit(chair);
p.eat(c, b);
}
}
/*
* 人类 其中 有坐下与吃饭的动作
*/
class Person{
//人坐下
public void sit(Chair c){
c.sitPerson(new Person());
}
//人用筷子和碗来吃饭
public void eat(Chopsticks c,Bowl b){
Meal m = new Meal();
c.getMeal(m);
b.getMeal(m);
}
}
//椅子类
class Chair{
//椅子可以让人坐
public void sitPerson(Person p){
System.out.println("人坐在椅子上");
}
}
//筷子类
class Chopsticks{
//用筷子夹饭吃
public void getMeal(Meal m){
System.out.println("用筷子吃");
}
}
//碗类
class Bowl{
//用碗盛饭
public void getMeal(Meal m){
System.out.println("碗里的饭");
}
}
//饭
class Meal{
}
复制代码
可能想的多些,不知道这样回答可以嘛 类的属性没有添加 动作只是打了一句话 再添点属性就好玩啦 比如谁坐在椅子上 吃的是什么饭 再整个构造方法碗是谁的 等等
作者:
twtzhongxin
时间:
2014-3-1 14:42
人画圆 是circle.draw();
人关门 是door.close();
那人吃饭不该是 rice.eat(); 吗?
作者:
pifuhanshu
时间:
2014-3-3 12:05
//定义用户类 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); } }
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2