this关键字访问构造方法
任务描述 :学习使用this关键字调用构造方法的使用
练习目标 :掌握如何在构造方法中使用this关键字访问重载的构造方法
需求分析
如果一个类中定义了多个重载的构造方法,为了避免在重载的构造方法中重复书写代码,可以在一个构造方法中使用this关键字调用其它的构造方法。为了掌握this关键字访问构造方法的用法,本练习使用this关键字调用其他的构造方法。
设计思路(实现原理)
在Student类中创建多个重载的构造方法,包括无参的构造方法、一个参数的构造方法,以及两个参数的构造方法。
在一个参数的构造方法中使用this关键字调用无参构造方法,在两个参数的构造方法中调用一个参数的构造方法。
编写测试类,在main()方法中,调用两个参数的构造方法创建对象,演示构造方法的执行顺序。
测试说明
平台会对你编写的代码进行测试:
测试输入:
小王,23;
预期输出:
无参的构造方法
一个参数的构造方法
两个参数的构造方法
我的名字是小王,今年23岁
代码:
package task05;
import java.util.Scanner;
/*
* 说明:根据提示,补充完整 begin 和 end 之间的代码。
* (其他代码可以不用改)
*/
/**************** begin *****************/
// 在此定义学生类名
class Student{
/**************** end *****************/
/**************** begin *****************/
// 将姓名name和年龄age属性定义为私有的
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
/**************** end *****************/
/**************** begin *****************/
/*
* 定义一个无参的构造方法:方法体输出一行文字"无参的构造方法";
*/
public Student(){
System.out.println("无参的构造方法");
}
/**************** end *****************/
/**************** begin *****************/
/*
* 定义一个接收一个String类型参数的构造方法:
* 方法体中:使用this关键字调用无参构造方法,
* 并使用String类型参数为姓名赋值,再输出一行文字"一个参数的构造方法";
*/
public Student(String name){
this();
this.name=name;
System.out.println("一个参数的构造方法");
}
/**************** end *****************/
/**************** begin *****************/
/*
* 定义一个接收String类型和int类型两个参数的构造方法:
* 方法体中:使用this关键字调用一个参数的构造方法,
* 并使用int类型参数为年龄赋值(不用为姓名赋值),再输出一行文字"两个参数的构造方法";
*/
public Student(String name,int age){
this(name);
this.age=age;
System.out.println("两个参数的构造方法");
}
/**************** end *****************/
void speak() {
System.out.println("我的名字是" + name + ",今年" + age + "岁");
}
}
public class Task05 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
/**************** begin *****************/
/*
* 调用学生类的两个参数的构造方法创建对象,参数值为运行时接收从键盘输入;
* 使用对象调用speak()方法。
*/
Student s=new Student(scan.next(),scan.nextInt());
s.speak();
/**************** end *****************/
}
}
续上~(* ̄︶ ̄)
秃头小白句子分享:别欺负我,奥特曼是我大哥!