论java的面向对象(oop)

    过程式程序设计与面向对象程序设计

        过程式程序设计也就是结构化程序设计通过算法来求解问题,然后确定后考虑储存数据的方法,(算法+结构=程序)。适用于一些规模较小的问题。

        当问题规模较大时用对象则更好的可以来处理此类问题。

        过程                                                                

---------------->    |                                        |

        过程          |             全局变量             |      

------------------>  |____________________|                                        

过程式程序设计

方法

方法                                  |                               |

——————————>   |        对象数据         |

面向对象程序设计

使用预定义类(class)

类(class) 指定了如何构建对象。

由一个类构造对象的过程称为创建这个类的一个实例。也就意味着这个类的使用需要实例化。

例如我们创建了一个Bank类.

如果我们想要调用这个类中的变量就需要将其实例化后,开始使用这个类。

这里我们创建好以后,需要对类进行封装。

封装(也是一种信息隐藏)是处理对象的重要概念。

从形式上看:封装也就是将数据和行为组合到一个包中,并对对象隐藏具体的实现细节。

对象中的数据(实例字段),操作数据的过程(方法)。

作为一个类的实例,一个特定对象有一组特定的实例字段值。这些值的集合就是当前这个对象的当前状态。当我们在这个对象上调用一个方法时,它的状态就有可能发生改变。

实现封装也就意味着,我们不能其他类中的方法直接访问这个类的实例字段。程序只能通过对象的方法与对象数据进行交互。

封装为对象赋予了“黑盒”特征,提高了程序的重用性和可靠性。

这样用一个类完全改变储存数据的方式,只要仍使用同样的方法操作数据,其他对象就不会知道这个类中所发生的变化。

OOP也会使我们定义Java类变得更容易,我们可以通过扩展其他类来构建新类.扩展一个已有的类时,这个类具有被扩展的那个类的全部属性和方法,我们只需要在新类中提供适用这个新类的新方法和实例字段。

通过扩展一个类来得到另外一个类也被称为继承。

对象

对象的特征

1.对象的行为————可以对这个对象进行什么操作,应用什么方法;

2.对象的状态————调用那些方法后,对象的响应;

3.对象的标识————如何区分可能具有相同行为和状态的不同对象;

识别类

在opp的程序编写中我们的程序往往从识别类开始,然后再为各个类添加方法。

一般我们可以在分析问题过程中找到名字,而方法对应动词。

类之间的关系

  • 依赖(use-a);
  • 聚合(has-a);
  • 继承(is-a);

依赖(dependence))"use-a"关系,一个类的方法的使用要使用或操作另一个类的对象。

比如我们登录某个网址时我们的操作依赖于我们的账户,我们每步的操作前都是先经过我们的账户,但同时我们更改一个类时也要考虑另一个类中的变化,避免产生bug。

聚合(aggregation)"has-a"关系,即一个对象中包含着另一个对象。

继承(inheritance)"is-a"关系,通过一个类扩展另一个类,如:由A类扩展B类,那么A类会继承B类的方法。

实例化

我们通过列举Data类来展示

类似于C++中的对象指针。

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值