学习-Java继承和多态之方法重载
100
- 任务要求
- 参考答案
- 评论17
任务描述
本关任务:使用重载方法为 Student 类创建三个构造方法。
相关知识
Java 中重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。这里需要注意的是参数不同需要满足 2 个条件:一个是参数的个数不同;一个是参数个数相同,但参数列表中对应的某个参数的类型不同。最常用的地方就是构造器的重载。
重载的要求如下:
- 方法名相同;
- 方法的参数类型,参数个不一样;
- 方法的返回类型可以不相同;
- 方法的修饰符可以不相同;
- main 方法也可以被重载。
例子:
public class Demo {
// 定义一个 sum 的方法,携带 2 个参数,都为 int 型,返回值为 int 型
public static int sum(int a,int b) {
int c = a + b;
return c;
}
// 定义一个 sum 的方法,携带 2 个参数,一个为 int 型,一个为double 型
public static double sum(int a,double b){
double c = a + b;
return c;
}
// 定义一个 sum 的方法,携带 3 个参数,都为 int 型,返回值为 int 型
public static int sum(int a,int b,int c){
int d = a + b + c;
return d;
}
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
System.out.println(sum(a,b,c));
System.out.println(sum(a,b));
System.out.print(sum(3,5.0));
}
}
执行结果:
6
3
8.0
虽然三个方法名都相同,但是他们携带的参数个数或参数类型并不完全一致,这种时候我们就将其称为重载。值的注意的是:方法的重载与返回值类型并无任何关系。
/**
* 任务:使用重载方法为 Student 类创建三个构造方法。
* 类名为:Student
*/
public class Student {
private String name; // 学生的姓名
private String num; // 学生的学号信息
private double grades; // 学生的成绩
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 创建一个有参构造函数,携带一个学生姓名的参数
Student(String na){
name=na;
}
Student(String na,String nu){
name=na;
num=nu;
}
// 创建一个有参构造函数,携带学生姓名和学生学号信息的参数
Student(String na,String nu,double gra){
name=na;
num=nu;
grades=gra;
}
// 创建一个有参构造函数,携带学生姓名、学生学号和学生成绩信息的参数
/********** End **********/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public double getGrades() {
return grades;
}
public void setGrades(double grades) {
this.grades = grades;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", num='" + num + '\'' +
", grades=" + grades +
'}';
}
}