java的构造方法与方法重载
public class Person {
String name; //用于描述姓名的成员变量
int age; //用于描述年龄的成员变量
//自定义无参的构造方法
Person(){ //构造方法的方法名称与类名完全一致
}
//自定有有参的构造方法,能够接受姓名和年龄作为实参
Person(String s,int i){ //构造方法的方法名称与类名完全一致
name = s;
age = i;
}
//自定义成员方法实现姓名和年龄的打印
void show(){
System.out.println("我是"+name+",今年"+age+"岁了!");
}
//自定义成员方法实现参数传入姓名的打印
void show(String s){
System.out.println("传入的姓名是:" + s);
}
public static void main(String[] args) { //main()方法
//创建Person类型的对象并使用引用变量进行记录
Person p = new Person();
//当调用一个方法时,根据方法名跳转过去执行方法体语句,执行完毕跳转回来
//如:调用show()方法
p.show(); //null 0
//表示又创建了一个对象,并将地址记录到p2中
Person p2 = new Person("张飞",30);
p2.show(); //张飞 30
p2.show("关羽"); //传入的姓名是:关羽
}
}
a)、构造方法的方法名称与类名完全一致,以至于大小写都一模一样。
b)、构造方法没有返回值,连void都没有。
c)、当创建一个新的对象的时,会自动调用构造方法来进行该对象中成员变量的初始化工作。
默认构造方法
当自定义类总没有声明任何形式的构造方法时,编译器则会自动添加一个无参的空构造方法。叫做默认构造方法。
但是类中如果自定义了构造方法,编译器就不再会提供任何形式的构造方法。
方法的重载
在同一个类中,方法名相同参数列表不同的方法之间构成重载关系(OVERLOAD)。
public class TestOverload {
void show(){
System.out.println("show()");
}
void show(int i){ //可以构成重载,体现在参数的个数不同
System.out.println("show(int)");
}
void show(double d){ //可以构成重载,体现在参数的类型不同
System.out.println("show(double)");
}
void show(int i,double d){
System.out.println("show(int, double)");
}
void show(double d,int i){ //可以重载体,体现在参数的顺序不同
System.out.println("show(double, int)");
}
public static void main(String[] args) {
TestOverload to = new TestOverload();
to.show();
to.show(33);
to.show(0.25);
to.show(66,0.25);
to.show(3.14,33);
}
}
方法重载的主要形式有:
- 参数的个数不同
- 参数的类型不同
- 参数的顺序不同
与形参变量名和返回值类型无关,但是建议返回值类型最好相同。
判断方法是否重载的方法:判断调用方法能不能加以区分。
方法重载的意义(作用)在于:
调用者只需要记住一个方法名就可以调用各种不同的版本,从而实现多种类型数据的处理。