为什么要有对象?----面向对象的意义所在

和面向过程相比较

目标程序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进行压缩打包。

 

10-06 18:11