java person类
JAVA上机实验作业,定义一个Person类,含:姓名、性别、年龄等字段;继承Person类设计Teacher类,增加:职称、部门等字段;继承Person类设计Student类,增加:学号、入学时间、专业等字段。定义各类的构造方法和toString()方法,并分别创建对象进行测试。 根据给定的文件信息,我们可以总结出以下关于Java面向对象编程中的类定义、继承与多态的相关知识点: ### 一、基本概念 1. **类(Class)**: 类是对象的模板,它定义了一组属性(字段)和行为(方法)。在Java中,通过`class`关键字来定义类。 2. **对象(Object)**: 对象是类的一个实例。通过new关键字创建对象。 3. **属性(Field)**: 属性也称为成员变量,用来表示类的状态信息。 4. **方法(Method)**: 方法也称为成员函数,用来表示类的行为。 ### 二、Person类的设计与实现 #### 1. Person类的定义 ```java public class Person { String name; // 姓名 String sex; // 性别 String age; // 年龄 // 构造方法 public Person(String name, String sex, String age) { this.name = name; this.sex = sex; this.age = age; } // toString()方法用于返回对象的字符串表示形式 @Override public String toString() { return "姓名:" + name + ",性别:" + sex + ",年龄:" + age; } } ``` - **字段定义**: - `name`:存储姓名; - `sex`:存储性别; - `age`:存储年龄。 - **构造方法**: - `Person(String name, String sex, String age)`:接收三个参数,并将它们赋值给对应的字段。 - **toString()方法**: - 重写`toString()`方法,返回一个包含姓名、性别和年龄信息的字符串。 #### 2. Teacher类的定义 ```java public class Teacher extends Person { String zhicheng; // 职称 String bumen; // 部门 // 构造方法 public Teacher(String name, String sex, String age, String zhicheng, String bumen) { super(name, sex, age); // 调用父类构造方法 this.zhicheng = zhicheng; this.bumen = bumen; } // 重写toString()方法 @Override public String toString() { return super.toString() + ",职称:" + zhicheng + ",部门:" + bumen; } } ``` - **继承**: - `Teacher`类继承自`Person`类,因此可以复用`Person`类中的属性和方法。 - **新增字段**: - `zhicheng`:存储职称; - `bumen`:存储部门。 - **构造方法**: - `Teacher(String name, String sex, String age, String zhicheng, String bumen)`:接收五个参数,调用父类构造方法初始化`name`、`sex`和`age`,并初始化`zhicheng`和`bumen`。 - **toString()方法**: - 重写`toString()`方法,返回一个包含姓名、性别、年龄、职称和部门信息的字符串。 #### 3. Student类的定义 ```java public class Student extends Person { String num; // 学号 String time; // 入学时间 String zhuanye; // 专业 // 构造方法 public Student(String name, String sex, String age, String num, String time, String zhuanye) { super(name, sex, age); // 调用父类构造方法 this.num = num; this.time = time; this.zhuanye = zhuanye; } // 重写toString()方法 @Override public String toString() { return super.toString() + ",学号:" + num + ",入学时间:" + time + ",专业:" + zhuanye; } } ``` - **继承**: - `Student`类继承自`Person`类。 - **新增字段**: - `num`:存储学号; - `time`:存储入学时间; - `zhuanye`:存储专业。 - **构造方法**: - `Student(String name, String sex, String age, String num, String time, String zhuanye)`:接收六个参数,调用父类构造方法初始化`name`、`sex`和`age`,并初始化`num`、`time`和`zhuanye`。 - **toString()方法**: - 重写`toString()`方法,返回一个包含姓名、性别、年龄、学号、入学时间和专业信息的字符串。 ### 三、测试代码分析 ```java public class Test { public static void main(String[] args) { Teacher t1 = new Teacher("aa", "Ů", "22", "教授", "信息学院"); System.out.println(t1.toString()); Student t2 = new Student("bb", "Ů", "22", "10086", "2012/08", "计算机"); System.out.println(t2.toString()); } } ``` - **创建对象**: - 创建了一个`Teacher`对象`t1`和一个`Student`对象`t2`。 - **输出结果**: - 使用`System.out.println()`打印`t1`和`t2`的字符串表示形式。 ### 四、小结 本案例通过定义`Person`类以及继承自`Person`的`Teacher`和`Student`类,展示了如何在Java中实现类的定义、继承与多态。通过具体的测试代码,验证了类的正确性和功能的完整性。这个例子不仅有助于理解面向对象编程的基本概念,还能加深对Java语言特性的理解。