Java的方法重载
超载是指
在同一类中,使用不同的参数类型和数量来定义多个同名方法被称为重载。由于只是使用同名,所以方法的内容(处理)可以是不同的。重载的好处是:
– 由于这是用于设置相同数据的方法,所以通过使用相同的名称,程序变得更易于理解。
– 可以给予相同的名称,因此命名变得更加容易。
– 由于方法名称不变,所以在调用时更方便使用。
等等。
class Student{
String name;
int engScore;
int mathScore;
void setData(String n){
name = n;
}
void setData(String n, int e, int m){
name = n;
engScore = e;
mathScore = m;
}
}
在上述的”Student”类中,定义了两个名为”setData”的方法(方法重载)。
其中一个”setData”方法接收一个String类型的参数,而另一个”setData”方法接收一个String类型的参数和两个int类型的参数。
在调用端,可以根据方法的名称、参数的类型和数量来决定调用哪个”setData”方法。
public static void main(String[] args){
Student stu = new Student();
stu.setData("菅原");
stu.setData("菅原", 75, 100);
:
}
}
如果在调用者一侧找不到匹配名字和参数组合的选项,将会导致编译错误。
即使返回值类型不同,也可以调用。
请提供要重述的例文。
class StuSample2{
public static void main(String[] args){
Student2 stu1 = new Student2();
Student2 stu2 = new Student2();
stu1.setData("菅原");
stu1.setScore(90, 80);
stu1.display();
stu2.setData("田仲", 75, 100);
stu2.display();
}
}
class Student2{
String name;
int engScore;
int mathScore;
void setData(String n){
name = n;
}
void setData(String n, int e, int m){
name = n;
engScore = e;
mathScore = m;
}
void setScore(int e, int m){
engScore = e;
mathScore = m;
}
void display(){
System.out.println(name + "さん");
System.out.println("英語" + engScore + "点・数学" + mathScore + "点");
}
}
菅原さん
英語90点・数学80点
田仲さん
英語75点・数学100点
在Student2类中,有两个重载的setData方法。第一个setData方法位于第6行,接收一个String类型的参数,并将其赋值给变量。第二个setData方法位于第9行,接收一个String类型和两个int类型的参数,并将它们分别赋值给相应的变量。
StuSample2类中生成了两个对象,这两个对象都是从Student2类创建的。
在StuSample2类的第6到9行中,将值存储到Student2类的第6行的setData方法和setScore方法中,并通过display方法进行输出。
在StuSample2类的第10到11行中,将值”田仲”,75和100分别存储到Student2类的第9行的setData方法中,并通过display方法进行输出。
请参阅以下文章。