您的位置:首页 > 职场人生

黑马程序员__关于学习7k月薪面试题破解的总结

2013-06-01 02:40 267 查看
             -------
android培训java培训、期待与您交流!
----------

 

面向对象设计的一个重要经验:

              

              谁拥有数据,谁就对外提供操作这些数据的方法!

 

注:访问外部类的成员的名字:       1,外部类名.this.成员变量名字             2,外部类成员变量前加final修饰

面试题一:

    两块石头磨成一把刀,刀砍树,树变木材,木材组成椅子!(面向对象设计)

    对象:Stone 石头   StoneKnife石刀  Tree 树 Material 木材 Chair 椅子

 

    想要一个石刀,并不能用石头自己来处理,处理完了自己对象就不存在了,所以要定义一个石刀加工厂来生产石刀

   

    StoneKnife = KnifeFactory.createKnife(Stone);

   

     同样:要木材就可以用石刀来生成方法,因为石刀就是一个工具

   

     Material = StoneKnife.cut(Tree);

   

     坐椅子也应该用椅子加工厂来用木材生成方法,不能用木材本身

  

      Chair = ChairFactory.makeChair(Material);

面试题二:

       球从一根绳子的一端移动到另一端

       两个对象:绳子Rope  球Ball

class Rope{
private Point start;
private Point end;
public Rope(Point start,Point end){
this.start = start;
this.end = end;
}
public Point nextPoint(Point currentPoint){
//通过两点一线的数学公式计算出当前点的下一个点
//如果当前点是终止点则返回null 如果不是线上的点则抛出异常
}
}
class Ball{
private Rope rope;
private Point currentPoint;
public Ball(Rope rope,Point startPoint){
this.rope = rope;
this.currentPoint = startPoint;
}
public void move(){
currentPoint = rope.nexPoint(currentPoint);
System.out.println("小球移动到了"+currentPoint);
}
}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐