重载
- 定义:在一个类中有多个方法有相同的名字、不同的参数,这种现象就叫做方法的重载。
- java允许重载任何方法,不只是构造器方法。要完整地描述一个方法,需要指定方法名以及参数类型。这叫做 方法的签名。例如,String类的4个indexOf()方法。它们的签名是
indexOf(int)
indexOf(String, int)
indexOf(String)
indexOf(int, int)
由此可见,方法的返回值类型并不是签名的一部分。也就是说,不存在两个相同名字、相同参数类型但返回值类型不同的方法。
默认字段初始化
在构造器方法中,若实例字段没有设置初值,则这些字段就会被自动地赋为默认值。但在方法中的局部变量,必须将其初始化。这是字段与局部变量的一个重要区别。
无参数构造器
- 在一个类中,如果没有编写构造器,Java会自动提供一个无参数的构造器
- 如果编写了一个有参构造器,但是并没有编写无参数构造器,此时Java并不会再自动提供无参数构造器了。那么创建对象时,如果创建没有参数的对象就是不合法的。
参数名
public class Employee(){
//此处的name和salary都表示实例字段
private String name;
private double salary;
public Employee(String name, double salary){
//name、salary是此方法的参数
//this代表隐式参数,也就是代表通过该构造器构造的对象,通过这种this.xxx的形式访问该类的实例字段
this.name = name;
this.salary = salary;
}
}
public Employee(double s){
//this调用Employ(String,double)构造器
this("Employee#" + nextId, s)
}
当调用new Employee(5000)时,Employee(double)构造器将调用Employ(String,double)构造器。
通过上述两段代码可知,this关键字有两个作用:
1. 充当隐式函数,也就是构造器所构造的对象。
2. 在一个构造器中调用另一个构造器。