------- android培训、java培训、期待与您交流!---------
通过张孝祥老师关于学员面试和交通灯管理系统的讲解,让我受益匪浅!!!
面试方面就不多说了!,在张老师在讲解交通灯管理系统的时候,一直在不断的强调,面对对象的重要性和高新技术的应用。对此我也有更加深刻的认识。
下面我就来说说什么是面对对象?对象之间是如何联系起来的?
比如:人在黑板上画圆---------这里涉及了多少个对象呢?它们之间是怎么联系的呢?你能用程序来说明吗?
分析:
我认为:涉及了三个对象。
人(Person)---------是一个对象
黑板(blackboard)-------是一个对象
Circle(House)--------是一个对象
这里涉及画的动作draw()
通过分析,我们发现,画的动作应该属于人所有,人画画,画是画在黑板上的,所以黑板要得有一个面板,即继承panel面板,好吧,下面就来看代码吧!
1、先定义圆类,圆类中有原心属性(x,y)和半径r
class Circle{
privare int x;
private int y;
private int r;
public Circle(int x,int y,int r){
this.x=x;
this.y=y;
this.r=r;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public int getR(){
return r;
}
}
2.定义人的类,在类中有一个方法draw(),方法中画圆
class Person{
private Circle c;
public Person(){
c=new Circle(4,6,4);
}
public void draw(Graphics g){
g.drawOval(c.getX()-c.getR()/2,c.getY()-c.getR()/2,c.getR(),c.getR());
}
}
3,定义黑板类,在黑板类继承JPanel面板,并重写paint方法
class Blackboard extends JPanel{
private Person p;
public Blackboard(){
p=new Person();
}
public void paint(Graphics g){
p.draw(g)
}
}
4.定义主类MainClass
public class MainClass {
public static void main(String args[]){
new Blackboard();
}
}
大功告成,大家注意到没有,对于“人在黑板上画圆”,编写程序非常简单,但是我编写的就非常有条理,把圆,人,黑板这几个对象分开编写,最后在主类中调用,这样显得比较灵活了,当需要更改某个类时,就方便了很多。
其实,关于以上的程序,我也是看了张老师的关于交通灯管理系统的讲解后,才对面对对象程序设计的进一步理解和对面对对象的编程过程中分类的好处的加深理解。
有了上面的理解,我们来分析一下交通灯管理系统:
我的思路是:涉及到多少个对象?对象里有什么动作?对象之间是怎么联系的?
涉及到的对象有:路灯,路,车
路灯,有切换红绿灯等动作;路:有增加车辆和减少车辆的动作,而车是在路中的,可以单独创建对象,也可以不用创建对象;再创建一个路灯控制器类,在路灯控制器中把路和路灯联系起来!!!
代码就不说了,张老师讲解后,让我进一步加深了枚举的使用方法(高新技术的使用),既然有高新技术我们为什么不用呢?我觉得不是我们不懂高新技术,而是我们在做项目的时候很少会想到高新技术。这样就使我们只是懂得了高新技术的原理,却不能很好的应用到实践中!另外也粗略了解了如何使用线程池和定时器,怎么创建单例线程的方法。
但是要想理解得更加深刻,还得做加把劲学习!
------- android培训、java培训、期待与您交流!---------