方法的重载
- 1)同一个类中,方法名称相同,参数列表不同
class Test{
void say(){}
void say(String name){}
void say(int age){}
void say(String name,int age){}
void say(int age,String name){}
}
- 2)编译器在编译时自动根据方法的签名来绑定调用不同的方法
public class TestDemo {
public static void main(String[] args) {
Test t = new Test();
t.say();
t.say("zhangsan");
t.say(25);
t.say("zhangsan", 25);
t.say(25, "zhangsan");
}
}
构造方法
- 1)常常用于给成员变量赋初值
- 2)必须与类同名,没用返回类型
- 3)在创建(new)对象时被自动调用
- 4)若自己不写构造方法,则编译器默认提供无参构造; 若自己写了构造,则不再默认提供无参构造
- 5)构造方法可以重载
代码:
package dany;
public class TestStudent {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student("张三",25,"北京");
Student s3 = new Student("李四",26);
}
}
class Student{
String name;
int age;
String address;
Student(){
System.out.println("无参构造");
}
//给成员变量赋初值
Student(String name1,int age1,String address1){//有参构造方法
name = name1;
age = age1;
address = address1;
System.out.println("有参构造");
System.out.println(name+" "+age+" "+address);
}
//重载
Student(String name1,int age1){
name = name1;
age = age1;
System.out.println("重载的有参构造");
System.out.println(name+" "+age);
}
}
在创建对象的时候,会自动调用相应的构造方法,上面代码运行结果为: