Java面向对象

面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。

对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。

一.对象的概念

Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点:

对象具有属性和行为。

对象具有变化的状态。

对象具有唯一性。

对象都是某个类别的实例。

 一切皆为对象,真实世界中的所有事物都可以视为对象。

二.面向对象的三大核心特性

面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率。面向对象程序设计有以下优点。

(1)可重用性:代码重复使用,减少代码量,提高开发效率。下面介绍的面向对象的三大核心特性(继承、封装和多态)都围绕这个核心。

(2)可扩展性:指新的功能可以很容易地加入到系统中来,便于软件的修改。

(3)可管理性:能够将功能与数据结合,方便管理。

 

该开发模式之所以使程序设计更加完善和强大,主要是因为面向对象具有继承、封装和多态 3 个核心特性。

继承性

如同生活中的子女继承父母拥有的所有财产,程序中的继承性是指子类拥有父类的全部特征和行为,这是类之间的一种关系。Java 只支持单继承。

封装性

封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。封装的目的在于保护信息,使用它的主要优点如下。

保护类中的信息,它可以阻止在外部定义的代码随意访问内部代码和数据。

隐藏细节信息,一些不需要程序员修改和使用的信息,比如取款机中的键盘,用户只需要知道按哪个键实现什么操作就可以,至于它内部是如何运行的,用户不需要知道。

有助于建立各个系统之间的松耦合关系,提高系统的独立性。当一个系统的实现方式发生变化时,只要它的接口不变,就不会影响其他系统的使用。例如 U 盘,不管里面的存储方式怎么改变,只要 U 盘上的 USB 接口不变,就不会影响用户的正常操作。

提高软件的复用率,降低成本。每个系统都是一个相对独立的整体,可以在不同的环境中得到使用。例如,一个 U 盘可以在多台电脑上使用。

Java 语言的基本封装单位是类。由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制。Java 提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西,私有的方法数据只能通过该类的成员代码来访问,这就可以确保不会发生不希望的事情。

多态性

面向对象的多态性,即“一个接口,多个方法”。多态性体现在父类中定义的属性和方法被子类继承后,可以具有不同的属性或表现方式。多态性允许一个接口被多个同类使用,弥补了单继承的不足。多态概念可以用树形关系来表示。

Java面向对象之重写与重载

方法的重写

前提:子类继承父类之后,对父类的方法进行改造

语法规则:两同,两小,一大

两同:子类方法和父类方法的方法名相同,方法的参数列表相同

两小:子类方法的返回值类型<=父类方法的返回值类型;子类方法的抛出异常<=父类方法的抛出异常

注意:我们在重写规则中提到的子类方法的返回值类型<=父类方法的返回值类型,这里的“<=”不是指指的大小,也不是字节的大小,而是:子类方法返回值类型必须是父类方法返回值类型的子类或者是同一类型

      比如父类是void,子类也是void

      比如父类是Cat,子类就是MiaoMiao

一大:子类方法的访问修饰符>=父类方法的访问修饰符

方法的重载:在同一个类中存在过个同名的方法,但是每个方法的参数不同(参数个数和类型)

1,在同类中,同名方法的参数个数不同,一定构成重载。

2,在同类中,同名方法的参数个数相同的情况,如果对应位置上参数类型相同,则不构成重载,如果对应位置上的参数类型不一致,一定构成重载。

方法重载的条件:

1,作用在同一个类中

2,方法名是相同的

3,参数不同(参数个数和参数列表):参数个数不同,一定构成重载,参数个数相同的情况,参数类型不同才会构成重载

重载和重写的区别

1,重载是作用在同一个类中,存在方法名相同,参数不同的方法

2,重写是指建立在继承关系中,子类对父类的方法不满意,可以重写,遵循的规则:两同,两小,一大

3,重载的意义:是为了外界调用方法方便,不管你传入什么样的参数都可以匹配到对应的方法

4,重写的意义:在不修改源码的情况下,进行功能改造和拓展

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值