方法重载(Overload)
方法重载完成相同的功能,且多个方法的方法名相同,但是各自的参数不同。
方法重载主要依靠参数类型和数量区分。
方法重载返回值类型应该相同。
构造方法
构造方法是一种特殊的方法,构造主要特点是:
- 方法名称和当前类名称相同。
- 如果类中没有定义有参数的构造方法,编译器会创建一个默认的缺省的构造方法,所以一个类至少存在一个构造方法。
- 构造方法没有返回值,也没有void
- 构造方法只能与new结合使用
student s1 = new student();
注意:但是如果我们在类中创建了有参数的构造方法,编译器就不会创建那个默认的无参数构造方法
class TestClass{
public TestClass(String testArg) {
// TODO Auto-generated constructor stub
}
}
错误的: TestClass TestClass = new TestClass();
构造器的重载
public class User{
private String name;
private int age;
private Date birthday;
public User(String n,int a,Date b){
name = n;
age = a;
birthday = b;
}
public User(String n,int a){
name = n;
age = a;
}
public User(String n){
name = n;
}
}
参数
可变参数
语法
修饰符 返回值类型 方法名(数据类型 ... 变量名) { 方法内容区 }
可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递)、1、2、3……多个。
eg
public class VariableParameters {
public static int sum(int... val) {
int sum = 0;
for (int i = 0; i < val.length; i++) {
sum += val[i];
}
return sum;
}
public static void main(String[] args) {
System.out.println(sum(1, 2, 3, 4, 5)); // 15
System.out.println(sum()); //0
}
}
注意事项:
- 一个方法的参数列表,只能有一个可变参数
- 一个方法的参数列表中有多个不同的参数时,可变参数要放在其他所有参数的后面