4. 方法
- Java 方法是语句的集合,它们在一起处理一件事情。
- 方法包含于类和对象中
- 方法在程序中被创建,在其他地方被调用
4.1 方法的定义
- Java 的方法类似于其他语言的函数,用一段完成特定任务的代码片段。
修饰符 返回值类型 方法名(参数类型 参数名){
方法体
...
}
4.1.1 方法的四种类型
- 无参无返回值的方法
- 有参无返回值
- 无参有返回值
- 有参有返回值
4.2方法的重载
- 重载:同一个类中多个同名方法根据不同的传参来执行不同的逻辑处理。(编译期)
- 方法重载的规则:
- 方法名必须相同
- 参数类型、个数、顺序不相同
- 返回值和修饰符可不相同
4.3 方法的重写
-
override - 重写
-
重写需要继承关系
-
静态方法是与类一起加载的,与重写无关。非静态方法子类可重写父类的方法
-
重写的关键词只能是 public
-
重写 方法名必须相同,参数列表必须相同
-
修饰符:范围可以扩大但不能缩小; public > protected > default > private
-
抛出的异常:范围可缩小但不能扩大
-
重写 子类的方法与父类的方法必须一致,方法体不同
-
为什么需要重写
- 父类的方法无法满足子类的需求
重载和重写的区别
-
重载是同方法名、参数的个数/类型/顺序不同、返回值和修饰符也可不同
-
重写:发生在运行期,是子类对父类允许访问的方法种方法体的重新实现。(内部逻辑)
- 返回值、方法名、参数类型必须相同
- 抛出的异常范围小于等于父类,访问修饰符不能大于等于父类
- 构造方法无法被重写
4.4 可变参数
- 一个方法中,只能有一个可变参数,必须在参数的末位
4.5 递归
- 自己调用自己,并给自己一个出口
4.6 Java 是 值传递
Java 程序设计语言是采用按值传递。方法得到的是所有参数值的一个拷贝,它无法修改传递给它的任何参数的内容。
Java种方法参数的使用情况:
- 一个方法不能修改一个基本数据类型的参数
- 一个方法可以改变一个对象参数的状态
- 一个方法不能让对象参数引用一个新的对象
4.7 深拷贝 和 浅拷贝
浅拷贝:
对基本数据类型进行值传递,对引用数据类型进行引用传递
深拷贝:
对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并赋值其内容
构造方法 可以被重载(overload)不能被重写(override)所以一个类可以有多个构造方法.