Java面向对象编程(OOP)

一、面向过程思想

步骤清晰简单,第一步做什么,第二步做什么…,面向过程适合处理一些较为简单的问题。

二、面向对象思想

物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向对象的思索。面向对象适合处理复杂的问题,以及多人协作的问题。

三、两种思想的使用场景

对于描述复杂的事务,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来进行分析整个系统。但是具体到微观操作,任然需要面向过程的思路去处理。

四、面向对象编程的三大特性:封装、继承、多态

4.1、封装

封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。例如,用户使用计算机时,只需要使用手指敲击键盘就可以实现一些功能,无须知道计算机内部是如何工作的,即使可能知道计算机的工作原理,但在使用计算机
时也并不完全依赖于计算机工作原理这些细节。

采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据。这样就避免了外部操作对内部数据的影响,提高了程序的可维护性。

4.2、继承

类与类之间同样具有关系,如一个百货公司类与销售员类相联系,类之间的这种关系被称为关联。关联主要描述两个类之间的一般二元关系,例如,一个百货公司类与销售员类就是一个关联,学生类与教师类也是一个关联。两个类之间的关系有很多种,继承是关联中的一种。

继承性主要利用特定对象之间的共有属性。例如,平行四边形是四边形,正方形、矩形也都是四边形,平行四边形与四边形具有共同特性,就是拥有4个边,可以将平行四边形类看作四边形的延伸,平行四边形复用了四边形的属性和行为,同时添加了平行四边形独有的属性和行为,如平行四边形的
对边平行且相等。这里可以将平行四边形类看作是从四边形类中继承的。在Java语言中将类似于平行四边形的类称为子类,将类似于四边形的类称为父类或超类。值得注意的是,可以说平行四边形是特殊的四边形,但不能说四边形是平行四边形,也就是说子类的实例都是父类的实例,但不能说父类的
实例是子类的实例。

4.3、多态

前面介绍了继承,了解了父类和子类,其实将父类对象应用于子类的特征就是多态。依然以图形类来说明多态,每个图形都拥有绘制自己的能力,这个能力可以看作是该类具有的行为,如果将子类的对象统一看作是父类的实例对象,这样当绘制图形时,简单地调用父类也就是图形类绘制图形的方法即可绘制任何图形,这就是多态最基本的思想。

多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理, 可以实例化子类的对象。由于整个事件的处理都只依赖于父类的方法,所以日后只要维护和调整父类的方法即可,这样就降低了维护的难度,节省了时间。

五、类与对象的关系

从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。

从代码运行角度考虑是先有类后有对象。类是对象的模板。

类是一种抽象的数据类型,它是对某一事物整体描述或定义,但是并不能代表某一个具体的事物。对象是对抽象概念的具体实例,能够体现出特点,展现出功能的是具体的实例,而不是某一个抽象的概念。

六、使用new关键字创建对象

使用new关键字创建对象的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。

七、类的构造器

类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。

构造器的特点:

  1. 必须和类的名字相同;
  2. 没有返回类型,不能写void;

在这里插入图片描述
可以看出,当我们创建一个对象时,它会自动调用构造方法。

注意:一旦定义了有参构造,无参构造就必须显示定义。
在这里插入图片描述

八、程序设计规则

在程序设计时要求:“高内聚,低耦合”。
高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉;
低耦合:仅暴露少量的方法给外部使用。

九、方法的重写

  1. 方法名必须相同;
  2. 参数列表必须相同;
  3. 修饰符:范围可以扩大,但不能缩小;
  4. 抛出的异常:范围可以缩小,但不能扩大。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值