Java工作学习----第八课 Java三大特性梳理 super this 方法的重写 抽象类接口 内部类跟异常 2021.1.31

面向过程

线性思维

第一步做什么,第二步做什么

属性加方法变成一个类

面向对象

分类的思维模式,需要先分类

类是一个模板,对象是一个具体的实例

适合处理发杂的问题

本质:以类方式组织代码,以对象的形式封装数据

三大特性

  • 封装:把数据包装起来,装到盒子里

  • 继承

  • 多态

先有对象后有类,对象是具体事务。

创建对象:

使用new关键字创建对象。

构造器

快捷键:alt+insert

public +类名{}

一个类什么都不写也会给一个,自动加一个构造器

作用:使用new关键字必须要有构造器

用来初始化值:有参构造器()

注意点:

定义有参构造后,再使用无参构造,必须明确的定义一个无参构造

封装

追求:高内聚,低偶和

即private的使用

属性私有,get/set

作用:

  • 提高安全性

  • 隐藏代码细节,设置年龄先支

  • 统一的接口

继承

类的抽象,字类时父类的拓展

子类可以继承父类的方法(注意权限修饰符)

类只有单继承,一个儿子只能有一个爸爸,一个爸爸可以有多个儿子

语法:extands:拓展

快捷键:ctrl+h //显示出继承关系

在JAVA中所有的类都是Object类

image-20210131180004669

Super

先调用父类的无参构造,若自己构造父类的构造器,必须要把super放在第一行

注意点:

  • 调用父类的构造方法
  • 必须只能出现中子类的方法或者构造方法中
  • super跟this不能同时调用构造方法
  • this本身调用的对象,代表父类对象的引用

方法的重写跟多态

并不是重载。

非静态的方法是重写

重写的关键词也只能是public

方法的名字之类的全都是一样的。

都写都是方法的重写,跟属性无关。

方法的调用只跟左边有关,跟右边定义的类型无关

image-20210131182543954

这是两个静态方法的重写

image-20210131182654356

这是两个普通方法的重写,子类重写了父类的方法

多态

有一个比较需要注意的东西

Student student = new Student();
Person person = new Student();
Object object=new Student();

对象能执行哪些方法主要看左边。

instanceof和类型转换

判断是不是那个类型

A instanceof B:A是对象 B是类型,继承关系也行,A必须是父类对象。

类型转换:父类代表高的,子类代表低的。

Person stdent=new Student();
// 此时不能使用Student中的方法

如果要使用student中的方法,要进行强制转换

例子:

(子类)父类.方法

(Student)Person.show();

注意:

  • 父类引用指向子类的对象
  • 子类转换为父类为向上转型
  • 父类转换为子类,向下转型

Static

静态的变量,一般在多线程中使用

静态方法不能去调用非静态方法,因为在加载类方法的时候,非静态方法还没有被调用

静态代码块比构造方法的加载时间还要早一些

静态代码块,只执行一次

静态导入包:用于导入包是直接导入方法,以方便直接使用该方法

抽象类

使用abstract来修饰类名

接口可以多继承

抽象方法:只有方法的约束,只有方法名字,不需要写方法体,在别人继承的时候必须实现。

正常类继承抽象类以后必须实现他的抽象方法

特点:

  • 不能new,也就是不能实现,只能用子类进行

接口

面向接口编程,接口的本质是锲约

接口的实现语法:interface 不用class

子类的定义通过:implements

接口里边的所有定义都是public,而且是抽象的

接口里边定义的是静态的常量

接口的一些特点:

  • 约束
  • 定义一些方法,让不同的人实现
  • 不能被实例化
  • 可以实现多个
  • 都是public

内部类

成员内部类

通过外部类实例化内部类

Outer.Inner =outer.new.Inner()

内部类可以访问内部类的私有方法

局部内we部类

在方法中行成内部类

匿名内部类

不定义内部前边的名字 只用new

new A();

异常

Exception

提出异常处理框架

程序运行中,出现了不期而至的各种情况

  1. 检查性异常
  2. 运行时异常
  3. 错误ERROR

image-20210131203957146

运行时异常

Error跟Exception

Error JVM直接给关闭了

异常的抛出跟抓取

try 尝试着去处理,监控区域,必须得要

catch抓取,可以捕获多个异常

finally走不走都要,处理关闭工作

throw:主动抛出异常,一般在方法里边用

throws:throws是方法可能抛出异常的声明,有多个

假设要捕获多个异常要从小到大的去捕获

自动生成捕获代码块快捷建 :ctrl+alt+t //选择代码块以后

image-20210131205936896


image-20210131204917337

image-20210131204942642

捕获异常的实例

image-20210131205333435

自定义异常

  1. 自定义异常类
  2. 在方法中用throws

这是第一步:自定义异常类

image-20210131212322400

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀才大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值