老黑讲Java之面向对象方法的重载
1、方法的签名
1、方法的签名包括:方法名和参数列表;
2、在一个类中不可以有两个方法的签名完全相同,即一个类中不可以有两个方法的方法名和参数列表完全一样。
3、若一个类中可以两个方法的方法名相同,但参数列表不能相同,代码如下:
public class People{
public void readBook(String bookName){...}
public void readBook(String bookName){...}
//上述代码编译错误
}
public class People{
public void readBook(String oneBook){...}
public void readBook(String oneBook, String secondBook){...}
//上述代码编译正确
}

2、方法的重载
Java语言中,可以允许多个方法的名称相同,但参数列表不同,称为方法的重载。
public class People{
public void readBook(String oneBook){...}
public void readBook(String oneBook, String secondBook){...}
public void readBook(String oneBook, String secondBook, String thirdBook){...}
}

3、编译时根据签名绑定调用方法
在编译时编译器根据签名绑定调用不同的方法,重载的方法可以看成完全不同的方法,方法名相同而已。
public class People{
public void readBook(String oneBook){...}
public void readBook(String oneBook, String secondBook){...}
public void readBook(String oneBook, String secondBook, String thirdBook){...}
}
p.readBook("老黑讲Java之基础教程");
p.readBook("老黑讲ava之基础教程","老黑讲Java之面向对象");
p.readBook("老黑讲ava之基础教程","老黑讲Java之面向对象","老黑讲Java之Spring核心技术");
1、构造方法语法结构
构造方法也是方法,但是它不同于其他方法,构造方法定义满足如下两个要求:
1、构造方法的名称必须与类名相同;
2、构造方法没有返回值,不用void修饰词,伪代码如下:
[public] People(){
//构造方法体
}
2、可以通过构造方法初始化成员变量
class People{
String name;
int age;
String gender;
public People(String name, int age, String gender){
this.name = name;
this.age = age;
this.gender = gender;
}
}
通过new 构造方法可以初始化成员变量,例如:
People p = new People("老黑",18,"男");

3、this关键字的使用
this关键字用在方法体,表示指向调用该方法的对象,即那个对象调用,this指向的就是哪个对象,如:
People p = new People("老黑",18,"男");
System.out.println(p.name);//老黑
在People类中this引用指向的就是上述People的对象,构造方法中this.name与p.name是等价的,所以调用的值相同。
4、默认的构造方法
1、Java语言中,任何一个类包含构造方法;
2、如果程序员没有定义,那么编译器会自动添加一个无参的构造方法;
3、当定义了构造方法后,Java编译器将会添加默认的构造方法了。代码如下:
public class People {
String name;
int age;
String gender;
public People() {
}

5、构造方法的重载
一个类中可以定义多个构造方法,这类构造方法名称相同,但是参数列表不同,这中方法叫做方法的重载,例如下面的代码:
