方法重载(Overload)

方法重载完成相同的功能,且多个方法的方法名相同,但是各自的参数不同。
方法重载主要依靠参数类型和数量区分。
方法重载返回值类型应该相同。

构造方法

构造方法是一种特殊的方法,构造主要特点是:

  1. 方法名称和当前类名称相同。
  2. 如果类中没有定义有参数的构造方法,编译器会创建一个默认的缺省的构造方法,所以一个类至少存在一个构造方法。
  3. 构造方法没有返回值,也没有void
  4. 构造方法只能与new结合使用
  1. student s1 = new student();

注意:但是如果我们在类中创建了有参数的构造方法,编译器就不会创建那个默认的无参数构造方法

  1. class TestClass{
  2. public TestClass(String testArg) {
  3. // TODO Auto-generated constructor stub
  4. }
  5. }
  6. 错误的: TestClass TestClass = new TestClass();

构造器的重载

  1. public class User{
  2. private String name;
  3. private int age;
  4. private Date birthday;
  5. public User(String n,int a,Date b){
  6. name = n;
  7. age = a;
  8. birthday = b;
  9. }
  10. public User(String n,int a){
  11. name = n;
  12. age = a;
  13. }
  14. public User(String n){
  15. name = n;
  16. }
  17. }

参数

可变参数

语法

  1. 修饰符 返回值类型 方法名(数据类型 ... 变量名) { 方法内容区 }

可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递)、1、2、3……多个。

eg

  1. public class VariableParameters {
  2. public static int sum(int... val) {
  3. int sum = 0;
  4. for (int i = 0; i < val.length; i++) {
  5. sum += val[i];
  6. }
  7. return sum;
  8. }
  9. public static void main(String[] args) {
  10. System.out.println(sum(1, 2, 3, 4, 5)); // 15
  11. System.out.println(sum()); //0
  12. }
  13. }

注意事项:

  1. 一个方法的参数列表,只能有一个可变参数
  2. 一个方法的参数列表中有多个不同的参数时,可变参数要放在其他所有参数的后面