实验03 Java面向对象编程1.doc
1、学生类的创建和使用 ○1创建一个Student类,包括的域有学号,姓名,性别和年龄,另外增加一个统计学生人数的静态域count; ○2在Student类建立构造方法初始化各域的值,并统计学生人数count; ○3创建分别获得各域(学号,姓名,性别和年龄)的public方法,以及分别设置各域(学号,姓名,性别和年龄)值的public方法(即get、set方法);另外还要创建获取静态域count值的get方法; ○4创建public型的toString方法,把该类的各域信息(学号,姓名,性别和年龄)组合成一个字符串,如:“141308008,小明,男,20岁”; ○5创建Student类的子类CollegeStudent类(大学生类),添加域:专业,静态域count统计大学生人数,建立构造方法并于其中统计大学生人数,并相应添加专业的get、set方法,获取静态域count值的get方法,重写toString方法(把专业信息加进去); ○6创建包含主方法的主类,并在主方法测试Student类与CollegeStudent类:创建Student类的两个对象;输出目前的Student类对象的人数;分别显示对象的各域信息(学号,姓名,性别和年龄;使用toString方法);修改某个对象的姓名和年龄,然后再显示这个对象的姓名和年龄;比较两个对象的年龄大小,输出年龄较大者的对象的所有域信息(toString方法)。创建CollegeStudent类的一个对象;输出目前的CollegeStudent类对象的人数;修改对象的姓名、年龄和专业;然后再显示这个对象的全部信息(调用toString方法,或在println方法中直接输出使其自动调用toString方法)。 注:以上类中所有域都是private类型。 Java面向对象编程是Java语言的核心特性,它允许我们以更接近人类思维的方式组织代码,将数据和操作数据的方法封装在一起,形成对象。本实验主要涵盖了以下几个面向对象编程的关键概念: 1. **类(Class)**:类是创建对象的蓝图,它定义了一组特性和行为。在实验中,我们创建了`Student`类,包含学号、姓名、性别和年龄等私有(private)域,以及一个静态(static)域`count`用于统计学生数量。 2. **构造方法(Constructor)**:构造方法是类的一个特殊方法,用于在创建对象时初始化其成员变量。在`Student`类中,构造方法接收参数来初始化学号、姓名、性别和年龄,并更新`count`。 3. **访问器和 mutator(getter 和 setter 方法)**:这些方法提供了对私有域的访问和修改。例如,`getXXX`方法用于获取域的值,`setXXX`方法用于设置域的值。这样可以保护数据,避免外部直接访问和修改,体现了封装性。 4. **toString()** 方法:此方法返回表示对象状态的字符串,便于打印和调试。在`Student`和`CollegeStudent`类中,我们重写了`toString()`,以展示对象的主要属性。 5. **继承(Inheritance)**:`CollegeStudent`类继承自`Student`类,继承了`Student`的所有属性和方法,并添加了专业(major)属性和对应的`get`、`set`方法。同时,`CollegeStudent`类也拥有自己的`count`静态域,用于统计大学生数量,并重写了`toString()`方法以包含专业信息。 6. **主类(Main Class)**:主类通常包含`main`方法,它是程序的入口点。在主类中,我们创建了`Student`和`CollegeStudent`对象,进行各种操作,如显示对象信息、修改属性值、比较对象等。 7. **静态域(Static Fields)**:静态域属于类而不是类的实例,因此所有实例共享同一静态域的值。在`Student`和`CollegeStudent`类中,`count`域记录了各自类的对象数量。 8. **封装(Encapsulation)**:将数据(域)设为私有(private)并提供公共方法(getter和setter)来访问,确保了数据的安全,这是面向对象的重要特性。 9. **多态(Polymorphism)**:虽然未在描述中直接提及,但`CollegeStudent`作为`Student`的子类,体现了多态性。这意味着`CollegeStudent`对象可以被视为`Student`对象,从而允许使用`Student`类定义的方法。 通过这个实验,你可以更好地理解Java中类的定义、构造函数的使用、对象的创建、继承的概念,以及如何通过封装、静态域和toString方法来管理对象的生命周期和表示。此外,还可以加深对面向对象编程核心思想的理解,包括封装、继承和多态。这些知识对于后续的Java编程至关重要。