java面向对象详解

面向对象全称Object Oriented Progra简称OOP。

面向对象的优点:

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

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

  1. 可管理性:能够将功能与数据结合,方便管理。

一.类

指具有相同属性和行为的事物的抽象,是一个对象的模板。

二.对象

指客观事实存在的事物和事,是一个类的具体实例。

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

对象的特点:
  • 对象具有属性和行为。

  • 对象具有变化的状态。

  • 对象具有唯一性。

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

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

面向对象的三大特征:

1.封装

隐藏对象内部细节,只提供有限的访问途径,保护信息。将属性私有化,提供公有的方法访问私有属性。

优点:

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

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

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

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

例:

2.继承

由一个已存在的类,抽取公共部分,后由这个基类派生除其他子类。子类的对象拥有父类的全部属性与方法,并子类可以重写父类方法(如果没有重写默认调用父类方法),子类亦可以拥有自己的方法,这称作子类对父类的继承。在Java中通过extends来进行继承,且不允许多继承。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或类从父 类继承方法,使得子类具有父类相同的行为。

特点: 

  1. java中一个类最多只能有一个直接的父类,即单继承

  1. java中要实现多继承,通过接口来实现

  1. 父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。

  1. 共性放到父类,特性放到子类

继承中的super与this:

this:代表本类对象的引用

super:代表父类存储空间的标识(可以理解为父类对象引用)

this和super的使用分别

成员变量:

this.成员变量 - 访问本类成员变量

super.成员变量 - 访问父类成员变量

成员方法:

this.成员方法 - 访问本类成员方法

super.成员方法 - 访问父类成员方法

构造方法:

this(…) - 访问本类构造方法

super(…) - 访问父类构造方法

子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化,原因在于,每一个子类构造方法的第一条语句默认都是:super()

方法重写:

存在于有继承关系的不同类中,方法名相同,参数项相同,返回值相同,方法具体实现不同。

Override注解用来检测方法是否被重写

限制:

私有方法不能被重写(父类私有成员子类是不能继承的),

子类方法访问权限不能更低(public > 默认 > 私有)

父类:

子类:

注:方法重载与方法重写不同

3.多态

同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作

方法重载:在同一个类中,方法名相同,参数项不同,参数个数,参数类型,参数类型顺序都不同。

多态的优点

  • 1. 消除类型之间的耦合关系

  • 2. 可替换性

  • 3. 可扩充性

  • 4. 接口性

  • 5. 灵活性

  • 6. 简化性

构造方法

上面方法重载中就是构造方法,无参数为无参构造,有参数为有参构造。

  1. 方法名与类名相同

  1. 不需要返回值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值