构造方法及其重载
任务描述 :编写一个类,对类的构造方法进行定义和重载。
练习目标
1.掌握有参构造方法的定义方式;
2.掌握如何在类中定义重载的构造方法;
需求分析
如果希望在创建对象的时候直接为其属性赋值,可以定义有参的构造方法。有参构造方法指的是在初始化对象时,接受外部传入的值并赋给对象的属性。
和普通方法一样,构造方法也可以重载。不同的构造方法,可以为不同的属性进行赋值。
本练习将通过创建对象的方式演示不同构造方法的使用方式,并根据构造方法的输出结果对构造方法的重载进行学习。
设计思路(实现原理)
1)对Student类进行修改,在类中定义三个重载的构造方法,包括无参的构造方法,接收一个String类型参数的构造方法,接收String类型和int类型两个参数的构造方法。
2)编写测试类,在main()方法中,分别使用三个重载的构造方法创建三个Student对象。
测试说明 平台会对你编写的代码进行测试:
测试输入:
小青
小刘
19
预期输出:
我的名字是null,今年0岁
我的名字是小青,今年0岁
我的名字是小刘,今年19岁
代码:
package task04;
import java.util.Scanner;
/*
* 说明:根据提示,补充完整 begin 和 end 之间的代码。
* (其他代码可以不用改)
*/
/**************** begin *****************/
// 在此定义学生类名
class Student
/**************** end *****************/
{
/**************** begin *****************/
// 将姓名name和年龄age属性定义为私有的
private String name;
private int age;
/**************** end *****************/
/**************** begin *****************/
/*
* 定义三个重载的构造方法,
* 无参的构造方法:方法体为空;
* 接收一个String类型参数的构造方法:方法体中用参数为姓名赋值;
* 接收String类型和int类型两个参数的构造方法:方法体中用参数为姓名和年龄赋值;
*/
public Student(){}
public Student(String name){
this.name=name;
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
/**************** end *****************/
void speak() {
System.out.println("我的名字是" + name + ",今年" + age + "岁");
}
}
public class Task04{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
/**************** begin *****************/
// 使用无参的构造方法创建一个Student对象,并调用speak()方法
Student s1=new Student();
s1.speak();
/**************** end *****************/
/**************** begin *****************/
/*
* 使用一个参数的构造方法创建一个Student对象,参数值为运行时接收从键盘输入,
* 然后调用speak()方法
*/
Student s2=new Student(scan.next());
s2.speak();
/**************** end *****************/
/**************** begin *****************/
/*
* 使用两个参数的构造方法创建一个Student对象,参数值为运行时接收从键盘输入,
* 然后调用speak()方法
*/
Student s3=new Student(scan.next(),scan.nextInt());
s3.speak();
/**************** end *****************/
}
}
续上~ (* ̄︶ ̄)
小白分享句子:去干饭的路上,风都是甜的。