面向对象——之前奏


大纲:

1.  面向对象与面向过程的区别

2.      如何理解面向对象;

3.      面向对象的具体分析原则:例题4个

4.      面向对象的编程单位是什么,在定义类时所涉及到的元素有那两个。

5.      类与对象的关系

6.      成员变量与局部变量的区别。

7. 匿名对象

——————————————————————————


【面向对象与面向过程的区别】——【示例篇】


【示例一】——将大象装进冰箱里。

【面向过程的思想来思考】——强调的动作

              1.打开冰箱;

              2.存储大象;

              3.关上冰箱;

              主体体现语言——C语言,这种语言在编写时,都是通过函数来体现的。

【面向对象的思考方式】——强调的是事物!

       1. 冰箱打开;

       2. 冰箱存储大象;

       3. 冰箱关上;

       主体体现语言——Java,这种语言在编写时,以冰箱编程单元。

              打开,存储大象,关上,动作都是冰箱应该具备的动作。只要找到了冰箱,就可以操作冰箱的这些动作。

【示例二】——去电脑城买电脑

【面向过程】——自己干   

1. 查资料,网络,报纸。——硬件参数信息。

2. 询价,砍价。

3. 装机,并检查。

4. 运输回家。

       【面向对象】——找一个懂行的人一起去(陪着去)。

              1.小红帮我看看这些信息。

              2.小红帮我询价,砍价。

              3.小红帮我监督。

              4.小红帮我运输

两种思想的转变——由一个动作的执行者,转变为一个动作的指挥者,但前提是小红必须得具备这个功能。



【如何理解面向对象】

1.      面向对象是一种思想,是符合现在人们思考习惯的一种思想;

2.      面向对象的出现将复杂问题简单化;

3.      面向对象将过程中的执行者,转换为指挥者。

【面试时】

       当面对一个复杂的项目时:

1.      面试官自己干;

2.      面试官找具备这样的功能的人来完成。

【面向对象与面向过程的联系】

面向对象基于面向过程,将过程进行封装,封装到了对象中。


【面向对象的具体分析】

· 先找该问题领域涉及到的对象——【名词提炼法】人,门;

· 找该问题领域涉及的动作——开。

 这个功能定义在那个对象中最合适,就定义在那个对象中。 所谓的最合适:那个对象最清楚这个功能。开的动作使用到了门这个事物中大的内容比如:门轴等。门最清楚开的动作,所以应该定义在门这个对象中。


1.      人开门;

1.      先找该问题领域涉及到的对象——【名词提炼法】,人, 门;

2.      找该问题领域涉及的动作——开。

       这个功能定义在哪个对象中最合适,就定义在那个对象中。

最合适:那个对象最清楚这个功能。

开的动作使用到了们这个事物中的内容比如:门轴等。

       门最清楚开的动作,所以应该定义在门 事物中。

2. 【人在黑板上画圆】

涉及对象:

       person , blackboard ,circle

涉及动作:

       draw( )

 

必须知道:圆心,半径,这些只能是 圆才最清楚。

3.【列车司机刹车】

涉及对象:

       person , car

涉及动作:

       刹车

谁对刹车动作最清楚:车知道如何控制车停下来,司机只是给车发了一个信号。

4. 【售货员统计售货小票上总金额】

涉及对象:

       售货员 , 售货小票;

涉及方法:

       统计;

售货员对象调用售货票据对象的getTotalMoney()方法,getTotalMoney()方法内部计算出售货票据的总金额。

【面向对象设计——小技巧】——谁拥有数据,谁就对外提供操作这些数据的方法

【思考题】

1.      球从一根绳子的一段移动到了另一端。

2.      两块石头磨出一把石刀,石刀可以砍树,砍成木材,木材可以做成椅子

 

【面向对象的程序设计中编程单位为类】


定义类时涉及到的元素

 

                          【属性】——成员变量;

 

                          【行为】——成员函数;

 

【类与对象的关系。】

       类是用于描述事物,是具体事物的描述;

 对象 是 类的实例。


【成员变量和局部变量的区别?】


1. 定义位置不同:】

成员变量定义在类中,作用域为整个类;

局部变量定义在函数中,函数调用结束,局部变量消失;

2. 内存中出现的时间不同:】

    成员变量定义好后,随着其在堆内存中创建而产生;

    局部变量 所属区间参与运算时,他出现在栈内存中;

3. 生存周期不一样:】

    成员变量,随着对象的出现而出现,随着对象的消失而消失。

局部变量,当所属区间参与运算时,他存在,当所属区间在运算完毕后,在内存中消失 而消失。。

4. 默认初始化值;】

      成员变量:因为都在堆内存中,所以都有默认初始化值

    局部变量:没有默认的初始化值;




【匿名对象】没有名字的对象。

        ——对象的简写格式;

【好处】——简化代码的格式。

【局限性】——

   Car c2 = new Car( );

   c2.run( );

   new Car( ).run( )

相等。

 

【匿名对象与非匿名对象的区别】

Car c3 = new Car( );

c3.color = "red";

c3.num = 8;

c3.run( );

 

new Car( ).color = "red";

new Car( ).num = 8;

new Car( ).run( );

【匿名对象的使用】

1. 当对象对方法进行一次调用的时候,可以使用匿名对象来简化。

     当对对象的成员进行多次调用时,必须起名字。

2. 可以将匿名对象作为实际参数进行传递。

 

它出现的根本原理是:简化书写。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值