二、方法
1、方法的重载
1.1 方法的签名
- 方法的唯一标识就是方法的签名:方法的名字和参数列表;
- 一个类中不能出现两个方法的签名完全一样的方法
1.2 方法的重载
public void show(){}
//互相构成重载
public void show(int i) {}
1.3 访问重载方法
- 编译器在编译时会根据方法的起那么绑定调用不同的方法

2、构造方法
2.1 构造方法的语法结构
- 构造方法是类的成员之一----------特殊的方法,有如下两个规则:
- 方法名和类名相同;
- 没有返回值类型,且不写void
public class Person{
public Person(){
//构造方法
}
}
2.2 通过构造方法初始化成员变量
- 构造方法的意义:初始化成员变量
- 当实例化一个对象时:new Person():实际上是执行了对应的构造方法
public class Person() {
Public Person() {
System.out.println("执行了无参构造方法");
}
}
public class Test{
public void static main(String[] args){
Person p = new Person();//执行了无参构造方法
}
}
2.3 this关键字
- this关键字解决了构造方法参数名称的属性名称同名的问题;
public Person(String name,int age) {
this.age = age;
this.name = name;//this解决同名问题。增加代码可读性
}
- this关键字是谁?谁调用了this.属性或方法中的某个属性和方法,则this就调用谁
public Person(String name) {
System.out.println("Person的无参构造方法");
this.name = name;//this.指Person对象。
}
2.4 默认的构造方法
- 一个类必须有构造方法,当类中没有定义时,编译器会提供一个默认的无参构造方法;
- 当我们显式的定义了任意一个构造方法时,系统将不会提供默认的无参构造方法。
public class Person {
String name;
int age;
public Person(String name) {//类名相同 且无返回值类型--- 构造方法
System.out.println("Person的无参构造方法");
this.name = name;//区分同名的
}
public void show () {
System.out.println("show1");
}
public void show (int i) {
System.out.println("show2");
}
public void show (double d) {
System.out.println("show3");
}
public void show (int i ,double d) {
System.out.println("show4");
}
public void Show (int i ,double d) {
System.out.println("show5");
}
}
public class TestMethod {
public static void main(String[] args) {
Person p = new Person();//会报错,系统不会提供默认的构造方法
}
}
2.5 构造方法的重载
- 类名相同,但参数列表不同的构造方法,我们称之为互相构成重载。
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public Person(String name) {//类名相同 且无返回值类型--- 构造方法
System.out.println("Person的无参构造方法");
this.name = name;//区分同名的
}