普歌-逆越团队:Java面向对象知识点【封装、继承、多态、抽象】

提示:该文章是本人复习时总结,内容不全,请见谅。

Java面向对象知识点【封装、继承、多态、抽象】


前言

面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。通过该文章可以大致了解到Java的面向对象的特征。


提示:以下是本篇文章正文内容,下面案例可供参考
**面向对象的四大特征:封装、继承、多态、抽象类。

一、封装

  1. 封装的含义:(自己理解)把一个对象属性私有化,然后提供给你一些get和set方法,让你来调用,访问。
    (书面理解)封装也称为信息隐藏,是利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其它部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

  2. 封装的作用:封装的作用在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。

  3. 封装的优点

  • 实现了专业的分工
    将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。
  • 隐藏信息,实现细节
    通过控制访问权限可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开放权限。
    4. 什么情况下封装:编写实例类时,用到封装有很多好处,其中比较实际的是:
  • 拒绝直接调用声明字段,保护内部数据,更安全;
  • 在编程中可达到缓存的效果,执行效率高;
  • 重复调用,避免代码冗余,程序编写效率高。
  1. 使用步骤:属性私有化
    a. 使用 private 修饰成员变量

    b. 提供公共的 get/setter 方法

    c. setHealth、getHealth…

    d.根基需求,在公共方法中添加合理的逻辑处理

6.类定义化规范
a. 属性私有化
b. 提供公共的getter/setter方法
c. 提供无参构造
d. 实现序列化接口(暂时了解)

7.访问权限修饰符:
主要是控制类以及类中成员的访问权限
java中的四种权限修饰符:public > protected > (default) > private
注意:(default)不是关键字“default”,而是不写。
在这里插入图片描述
总结: 在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。
8. static 关键字:静态的。
a. 修饰成员变量

  • 变成 静态变量/类变量。
  • 成员变量(实例/对象变量),它是随着对象的产生而产生的,每个对象信息不共享。
  • 类变量,它是随着类的产生而产生的,每个对象该信息共享。(类名.变量名)

b. 修饰成员方法

  • 变成类方法。
    例如:Arrays.toString(); (类名.方法名)无需创建对象,直接使用。

c. 修饰成员代码块

  • 变为静态代码块(暂时了解)

二、多态

1.多态的理解:一个事物具有多种形态,父类引用指向子类对象。
2. 什么是多态机制?Java语言是如何实现多态
java的多态机制分为编译时的多态【重载】和运行时的多态【重写】。
多态的实现条件:继承,重写,向上转型。

3.实现形式
a. 实现同一个接口,不同的实例,相同的动作,干不一样的事。
b. 继承同一个父类,重写父类方法,干不同的事。
4. 多态的优点:
消除类型之间的耦合关系
可替换性
可扩充性
接口性
灵活性
简化性
5. 多态存在的三个必要条件:
继承,重写,父类引用指向子类对象:Parent p = new Child();
6.多态的好处:无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化。
7.多态的弊端:只能使用父类的属性方法,无法使用子类特有的内容
解决:可以使用向下转型(强转)
8. 对象的向上转型:就是用父类的引用变量去引用子类的实例,这是允许的。
当向上转型之后,父类引用变量可以访问子类中属于父类的属性和方法,但是不能访问子类独有的属性和方法(此时就要用向下转型来还原)。
向上转型一定是安全的。
格式:父类名称 对象名=new 子类名称(); (左父右子)

9.对象的向下转型:将父类对象【还原】成为本来的子类对象。
并不是所有的对象都可以向下转型,只有当这个对象原本就是子类对象通过向上转型得到的时候才能够成功转型。
格式:子类名称 对象名=(子类名称)父类对象;
10.重写
是存在子类与父类关系的两个类中,是子类继承的父类方法无法满足子类需求时进行的,重写的方法具有相同的名字,相同的参数列表,返回类型为同类或子类,方法的修饰权限不能缩小。
11.重载
指的是指一个类中多个方法具有相同的方法名,但是参数不同。是为了适用于在不同参数返回值类型时均能调用同一方法而出现的。(与返回值类型无关)

三、继承

1.继承的理解
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
2.继承的格式:
在这里插入图片描述
3.继承中成员变量的访问方法:(在子父类的继承关系当中,如果成员变量重名,在创建子类对象时,访问有两种方式)
在这里插入图片描述
4.继承中成员方法的访问特点
在这里插入图片描述
5.继承中的方法的覆盖重写-概念与特点(覆盖重写:对于已经有的功能,要想改的话就用覆盖重写)
在这里插入图片描述
在这里插入图片描述
6.继承中父子类构造方法的访问特点:
在这里插入图片描述
继承可以使用 extends 和 implements 这两个关键字来实现继承。

四、抽象

1.抽象类的由来
父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。

抽象类里可以没有抽象方法,但是抽象方法一定在抽象类里。
2.抽象方法和抽象类的格式
在这里插入图片描述
3.抽象方法和抽象类的使用
在这里插入图片描述
4.注意事项:(重要)
在这里插入图片描述
1


  1. 到这里Java面向对象的知识就结束啦,感谢大家的耐心观看.
    如有不足,欢迎指出,共同进步! ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值