Java面向对象实验:封装性与继承性实践

需积分: 19 0 下载量 111 浏览量 更新于2024-08-10 收藏 1.15MB DOC 举报
"Java实验2 类的封装性和继承性设计实验" 本实验旨在帮助学习者理解和掌握Java语言中的面向对象编程特性,特别是封装性、继承性和多态性。实验内容涵盖了设计类、构造方法的使用、`this`关键字、`static`关键字的应用,以及静态内部类等相关知识。 1. 封装性是面向对象编程的核心概念之一,它隐藏了对象的内部实现细节,只对外提供公共接口供其他对象交互。在实验中,设计复数类需要考虑如何合理地封装实部和虚部这两个属性。通常,我们会定义私有(private)属性,并提供公有(public)的getter和setter方法来获取和设置这些属性的值。这样可以确保数据的安全性,防止直接修改对象的内部状态。 2. `this`关键字在Java中用来引用当前对象,它常用于构造方法中。当局部变量和成员变量同名时,使用`this`可以区分它们,确保正确地访问成员变量。例如,如果在构造方法中有形参和成员变量同名,可以通过`this.成员变量`来访问成员变量。 3. `static`关键字用于声明类级别的变量和方法,它们不属于类的实例,而是属于类本身。在实验中,要求创建一个Student类,并在其中定义静态变量和静态方法。静态变量可以被类的所有实例共享,而静态方法可以直接通过类名调用,无需创建对象。 编程题部分: (1) Student类的设计应遵循封装原则,将姓名和成绩属性设为私有,然后提供公有的set和get方法。无参构造方法用于创建对象,有参构造方法则接收姓名和成绩作为参数,初始化成员变量。在测试类中,通过构造方法和方法分别创建和操作Student对象。 (2) 这部分练习主要考察构造方法的重载。首先,创建一个类,其无参构造方法打印一条消息。然后,增加一个带String参数的构造方法,打印传入的消息。最后,创建该类对象的数组,但不立即分配对象。当分配对象时,会调用相应的构造方法,从而打印出消息。 (3) 对于外部类和静态内部类,外部类可以包含一个或多个内部类,静态内部类可以独立于外部类实例存在。在实验中,定义了一个名为Inner的静态内部类,它有一个静态变量和静态方法。在测试类的main方法中,可以直接访问内部类的静态成员,无需创建内部类的实例。 通过这个实验,学习者将深化对Java类、构造方法、`this`关键字、`static`关键字以及静态内部类的理解,并能熟练运用这些知识进行实际编程。