[タイトル説明]:
a. name (String 型)、age (int 型)、sex (char 型) の属性をもつPersonクラスを宣言します。
コンストラクターメソッドによる代入。各プロパティにはゲッター/セッター メソッドがあります。
show メソッドは String 型を返します。内容は次のとおりです。
男性(女性)XX歳
b. Studentクラスを宣言し、Person クラスを継承し、id (int, Student Number) 属性を追加し、コンストラクター メソッドを使用して親クラスのコンストラクター メソッドを呼び出して変数を割り当てます。各プロパティにはゲッター/セッター メソッドがあります。Override 親クラスの show メソッドは、次の内容を含む String 型を返します。
XX 男(女) 年齢 学籍番号
ヒント: super を使用して親クラスの show メソッドを呼び出し、学生番号の部分を除いた文字列を取得し、学生番号の情報を追加します。
c . Teacherクラスを宣言し、 Person から継承し、 course (文字列、教えられるコース) 属性を追加し、コンストラクター メソッドを使用して、変数割り当てのために親クラスのコンストラクター メソッドを呼び出します。各プロパティにはゲッター/セッター メソッドがあります。Override 親クラスの show メソッドは、次の内容を含む String 型を返します。
男性(女性)XX 歳の受講コース
ヒント: super を使用して親クラスの show メソッドを呼び出し、指導されたコースの部分を除く文字列を取得し、指導されたコースの情報を追加します。
d . PersonAppクラスを宣言し、静的メソッド appMain メソッドを記述し、メソッド内で Person、Student、Teacher 型の変数をそれぞれ宣言し、構築メソッドで初期化して、それぞれの情報を表示します。 :以下の表示結果
person に続くのは、中国語のコロンではなく、英語のコロンとそれに続く半角スペースです。
Student の後の文字は、中国語のコロンではなく、英語のコロンとそれに続く半角スペースです。
Teacher の後に続くのは、中国語のコロンではなく、英語のコロンとそれに続く半角スペースです。実行結果は次のとおりです (最初の 1 はユーザーが入力し、ユーザーが作成した appMain をテストするために使用されます。詳細については、main メソッドを参照してください)。
[出力サンプル]:
【コードは以下のように表示されます】:
import java.util.Scanner;
//声明一个PersonApp类
public class PersonApp{
public static void appMain(String[] args) {
Person p=new Person("张淼",21,'男');
Student s=new Student("高坤",22,'男',5001212);
Teacher t=new Teacher("李芳香",35,'女',"程序设计基础");
System.out.println("Person: "+p.show());//显示各自信息
System.out.println("Student: "+s.show());
System.out.println("Teacher: "+t.show());
}
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int func = sc.nextInt();
switch (func) {
case 1:
appMain(null);
break;
case 2:
personTest();
break;
case 3:
studentTest();
break;
case 4:
teacherTest();
break;
default:
break;
}
}
private static void teacherTest() {
Teacher t = new Teacher("李芳香", 35, '女', "程序设计基础");
test(t.getName().equals("李芳香") && t.getAge()==35
&& t.getSex()=='女' && t.getCourse().equals("程序设计基础"),
"Teacher构造函数正确","Teacher构造函数不正确");
test(t.show().equals("李芳香 女 35 程序设计基础"),"teacher.show()通过","teacher.show()未通过");
}
private static void studentTest() {
Student s = new Student("高坤", 22, '男', 5001212);
test(s.getName().equals("高坤") && s.getAge()==22
&& s.getSex()=='男' && s.getId()==5001212,
"Student构造函数正确","Student构造函数不正确");
test(s.show().equals("高坤 男 22 5001212"),"student.show()通过","student.show()未通过");
}
private static void personTest() {
Person p = new Person("张淼", 21, '男');
test(p.getName().equals("张淼") && p.getAge()==21
&& p.getSex()=='男', "Person构造函数正确","Person构造函数不正确");
test(p.show().equals("张淼 男 21"),"person.show()通过","person.show()未通过");
}
private static void test(boolean pass, String corr, String wrong) {
if (pass) {
System.out.println(corr);
} else {
System.out.println(wrong);
}
}
}
//声明一个Person类
class Person{ //有name age sex属性
String name;
int age;
char sex;
//通过构造方法进行赋值
Person(String name,int age,char sex){
this.name=name;
this.age=age;
this.sex=sex;
}
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;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex=sex;
}
//一个show方法,返回String类型
public String show() {
return this.getName()+" "+this.getSex()+" "+this.getAge();
}
}
//声明一个Student类继承Person,增加id属性
class Student extends Person{
private int id;
//通过构造方法,利用super调用父类构造方法来进行变量赋值
public Student(String name,int age,char sex,int id) {
super(name,age,sex);
this.id=id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getId() {
return id;
}
public char getSex() {
return sex;
}
//Override父类的show方法
public String show() {
return super.show()+" "+this.getId();
}
}
//声明一个teacher类继承Person,增加course属性
class Teacher extends Person{
String course;
//通过构造方法,利用super调用父类构造方法来进行变量赋值
public Teacher(String name,int age,char sex,String course) {
super(name,age,sex);
this.course=course;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public char getSex() {
return sex;
}
public Object getCourse() {
return course;
}
//Override父类的show方法
public String show() {
return super.show()+" "+this.getCourse();
}
}