Java 方法的重载跟构造器重载之间的区别
作者:邹爱红,
撰写时间:2019年05月08日
构造器的重载:形参列表不同
public class Demo2 {
String name;
int age;
//只是形参列表不同
public Demo2(){
System.out.println(“无参构造方法”);
this.name = name;
this.age = age;
}
public Demo2( int age) {
this.name = “小天”;
this.age = age;
}
public Demo2(int age,String name) {
this(age);//调用另外一个构造方法
this.name = name;
}
public Demo2(String name, int age) {
this(age,name);
System.out.println(“有参构造方法3”);
}
public void say(String text){
System.out.println(this.age +“岁的”+this.name+“说: “”+text+”"");
}
//构造器的调用
public static void main(String[] args)
{
//构造器的申明实例化和使用
//无参数构造方法
Demo2 demo1=new Demo2();
demo1.age=20;
demo1.name=“允恩”;
demo1.say(“积极向上的心态,是成功的最基本要素”);
//有参构造方法1
System.out.println();
System.out.println(“有参构造方法1”);
Demo2 demo2=new Demo2(19);
demo2.name=“小美”;
demo2.say(“生活总会给你另外一个机会,这个机会叫明天”);
//有参构造方法2
System.out.println();
System.out.println(“有参构造方法2”);
Demo2 demo3=new Demo2(19,“雨晴”);
demo3.say(“青春是明知道错了,偏要任性到底!”);
有参构造方法3
System.out.println();
Demo2 demo4=new Demo2(“芷琪”,19);
demo4.say(“我们必须在失败中寻找胜利,在绝望中寻找希望”);
}
}
方法的重载(overload ): 返回类型可以相同 也可以不同。
区别是参数,必须形参列表不一样(参数个数或类型不一样);
被重载的方法可以改变返回类型
返回的类型不能作为重载的标准,形参类表才是
修饰符可以改变
可以声明新的或更广的检查异常也可以,不影响重载,相同的方法名,形参列表不同
方法能够在同一个类中或者在一个子类中被重载。
方法的三个要素:调用者相同,方法名相同,形参列表不同
调用者就是:本身那个类,然后变成要可以点出来的static,本来是要实例化的,
所属的调用者不同,不构成方法重载。
修饰符可以改,修饰符不影响方法的重载
重载的例子:
package baoming;
public class
Teacher {
int age;
String name;
Public
int getAge() {
return age;
}
Public void setAge(int age) {
this.age = age;
}
Public String getName() {
return name;
}
public void setName(String name) {
this.name = “啊娟”;
}
public void say(String text) {
System.out.println(this.age + “岁的” + this.name + “说:”" + text + “”");
}
public void say(String text, String state) {
System.out.println(this.age + “岁的” + this.name + state + “的说:”" + text
- “”");
}
public String say(String text, String state, String location) {
return this.age+ “岁的” + this.name + “在” + location + “”+ state+ “的说:”" + text + “”";
}
public static void main(String[] args) {
Teacher teacher = new Teacher();
teacher.setAge(19);
teacher.setName("");// 调用那个阿娟
teacher.getName();//获取使用
teacher.say(“舞动生命的旋律,把握青春的脉搏”);
teacher.say(“虽然我们无法阻拦时间的流逝,但是我们可以主宰自己的心情”, “激动”);
String string=teacher.say(“用心吐字,用爱归音”, “激动”, “学校”);
system.out.println(string);
}
}
结果;