为什么要有对象?----面向对象的意义所在
和面向过程相比较
目标程序1:画三个图形——四方形、圆形、三角形。点击后旋转,并分别播放不同的音频。
面向过程:有什么动作?
——旋转rotate
——播放音频playSound
传不同的编号
面向对象:有什么事物?
——形状体、三个
——用户、声响对象+点击的事件
目标程序2:加一个图形
目标程序3:加一个图形且更换方法
面对对象的优点:新加入功能时,不会变乱,可维护性强
Q:在设计java的类时有哪些需要考虑的东西?
MA(MyAnswer):有哪些是抽象的父类,有哪些是子类独有的,每一个类需要有哪些动作,需要有哪些方法,类本身需要哪些状态?
AA(double answer):实例变量(intance variable)和方法(method)【用来读取get和操作set很常见】
创建自己的对象
之前已经学过就不多说
注意:每写一个变量或者方法之前,记得加上类名或者对象名
写一个类和其测试类
(有时候还是觉得敲打电影名很浪费时间的,不过这样才能呈现出比较好的效果,Take it easy)
Q:main的用途是什么?
A:测试类+运行程序的入口
————上面谈到了为什么我们需要类,这里就谈一谈怎么运用类来实现过程:是通过对象和对象之间互相调用方法来完成的
目标程序:三个玩家猜测game中的随机数,有一个以上猜中就结束,没猜中就重来
用GuessGame对象和Player对象互相调用,GameLauncher只相当于一个测试程序,测试程序只需要创建GuessGame对象,并调用GuessGame的一个方法,即完成程序,故而大多程序的循环判断是在GuessGame中完成。
而Player所需要的属性是自己猜测的数字,方法要能改变猜测的数字
GuessGame属性要有自己的数字,方法要有循环控制方法。
——疑点Q:为什么GuessGame实例变量是player,targetNumber要放在局部变量中呢?
而且也只是在实例变量中声明,没有赋值,局部变量自然是赋值了的。
我若要写-实例变量int targetNumber,再在方法中赋值;直接在方法中声明和赋值引用变量。
不是,每一个函数都需要targetNumber,所以targetNumber要作为局部变量来声明;要在方法中用到别的对象的属性和方法,必须在这个方法中实例化。
Q:为什么要多加一个guessp?来保存猜测的数字呢?每一轮都可以直接用对象的数字来指示?
Q:加一个boolean变量来指示
A:优雅程序
Q:程序有一些冗余,在每一轮三个player给出指示之后又重新陈列了一遍,我觉得是没有必要的。
注意:要会指示每一轮计算机给出的targetNumber和player每一个猜测的数字
终于写完了!
第二章也结束了
来做个总结吧
第二章终于讲到了面向对象,也拉开了长达几章节的面向对象的序幕。
了解为什么会出现面对对象的思维,面向对象的好处(不用改变原先的代码);如何创造自己的对象;完成一项对象和对象之间互相调用的过程。在QA中提到了public static和final来模仿global的全局变量;提出了java的类文件太多可以用pkzip进行压缩打包。