继承、方法重写、修饰符、导包、状态修饰符、static、静态方法、Math工具类

发布时间 2023-08-08 01:00:23作者: Rover20230226

子类、父类:构造、数据

成员方法:类中方法外;

访问特点:子类成员范围 -> 父类成员范围 -> 报错

方法重写——方法名、参数列表、返回值都相同;作用:覆盖父类的方法

注解 @Override 用于检查当前方法是否是重写方法,否则编译报错

不是必须,更为规范

快捷方式:方法名自动补全

继承的注意事项

只支持单继承,不支持多继承 (双继承父类同方法无法选择继承方)

支持多层继承(父类的父类,依然叫父类)

知识总结方法

# 继承
1. 继承概述
		介绍:子类继承父类,就拥有父类的内容(属性,方法和构造)
2. 继承的好处和弊端
	1). 好处:提高代码复用性(Teacher类、Student类、Person类)
	2). 弊端:
            提高了类之间的耦合性,修改父类,就会影响到子类的内容
            (代码要低耦合:因为耦合度高了,扩展性就差了)
            耦合性:关联度
            扩展性:当需求变化的时候,改变越少,扩展性就越强
3. 继承的语法
	1). class A extends B {//类体 }
		B是父类,基类,超类
		A是子类,派生类
	2). 核心关键字:extends
4. 继承中的成员访问特点:
	1). 属性
		I. 核心:就近原则
		II. 详解:先访问局部,再访问子类成员,最后访问父类成员
	2). 构造
		I. 核心:子类构造必须调用父类的构造
		II. 详解:
                子类构造默认调用父类的空参构造
                如果父类没有空参构造,子类就需要手动调用父类的有参构造
	3). 方法
		I. 核心:先访问子类成员,然后访问父类成员
		II. 注意:方法重写
	4). 核心关键字:
		I. this
		II. super
5. 方法重写
	1). 介绍:子类中定义与父类相同的方法(方法名,参数列表和返回值相同)
	2). 方法重写和方法重载有何异同
		I. 方法重载:在一个类中,定义多个方法名相同,参数列表不同的方法,称为重载
		II. 方法重写:在两个类中,子类中定义与父类相同的方法(方法名,参数列表和返回值相同)
6. Java类的继承注意事项
	1). Java的类只有单继承,没有多继承
	2). Java可以多层继承

重要的是做的过程,在过程中吸收

听10%,练30%,讲30%

继承案例

老师和学生

项目经理和程序员

toString

此方法的返回值是什么,那么当前类对象的引用直接打印,就会是什么

this.方法名()

修饰符

private 本类

默认 同包子类无关类(同包下)

protected 不同包的子类(继承关系)

public 不同包的无关类(无继承关系)

导包

1.包 是文件夹,路径

2.导包的目的:就是让 JVM 直到类在何处

3.在 Java 中,用到一个类,都需要导包,只有两种情况例外

  • java.lang 包下的类(String,Object)
  • 本包下的类

4.特殊情况:

​ 一个类中需要用到两个类,这两个类的类名相同,包名不同的情况

​ 其中一个可以导包,另一个就需要写完全限定名(包名+类名)

状态修饰符

final(最终态)

  • 不可继承(修饰类)
  • 不可重写(修饰方法)
  • 不可修改(修饰变量)基本数据类型,数据值不变。引用数据类型,地址值不变。

static(静态)

1.static关键字是静态的意思,可以修饰成员方法,成员变量

2.static修饰的特点

  • 被类的所有对象共享,判断是否使用静态关键字的关键

  • 静态成员可以通过类名直接调用

3.非静态可以调用静态,静态不能调用静态(对象)

  • 静态方法不能调用非静态属性和方法
  • 静态方法不能调用 this 和 super

静态方法的好处:

1.静态的好处:直接通过类名直接调用,无需创建对象,节省内存,运行快

2.main方法

​ 1)介绍:这是 java 程序的入口方法,由 JVM 自动调用

System.out.println();

类.属性.方法();

calc:计算器

工具类的方法一般有以下两个特点:

1.工具类中的方法基本纯逻辑,跟非静态成员无关

2.工具类中的方法经常被设计出静态的,这样调用方便,而且还快

image-20230403181610160

Math.abs() 取绝对值 absolute

Math.ceil() 向上取整

Math.floor() 向下取整

Math.round() 四舍五入

Math.max() 取较大值

Math.pow(n, m) 幂运算 n的m次方