Java面向对象特性:理解static关键字与类变量

需积分: 0 0 下载量 159 浏览量 更新于2024-08-04 收藏 264KB PDF 举报
第六章面向对象特征主要探讨了Java编程语言中面向对象特性的一些关键概念,特别是关于`static`关键字的应用。这部分内容深入浅出地讲解了以下几个核心知识点: 1. **static关键字**: `static`关键字在Java中扮演着重要作用,它用于标记一个成员变量或方法为类级别的,而不是特定对象的。当一个成员变量被`static`修饰时,它被称为类变量(也叫静态变量),其值对所有类的实例共享,无论是否创建了对象。相反,未被`static`修饰的成员变量是实例变量,每个对象都有自己独立的副本。 2. **包**: 虽然章节内容没有直接涉及包(package)的概念,但在实际编程中,包是组织和管理Java类的一种方式,它有助于避免命名冲突,并提供了更好的代码结构。包允许程序员将相关的类和接口分组在一起。 3. **访问修饰符**: 面向对象编程中,访问修饰符(如public、private、protected和默认)控制了类、成员变量和方法在不同类和包之间的可见性。`static`关键字并不改变访问修饰符的作用,但它的存在可能会影响类方法的访问性。 4. **封装**: 封装是面向对象的核心原则之一,它强调隐藏实现细节并提供公共接口。尽管`static`关键字不直接影响封装,但它确实影响了类的内部结构,因为静态成员不依赖于特定的对象实例,这与封装的理念相一致。 5. **继承**: 继承允许子类继承父类的属性和行为。然而,`static`成员不会被继承,子类只能访问它们自己的静态成员,而不能访问父类的静态成员。 6. **多态**: 多态是面向对象编程中的另一个重要概念,指同一种行为可以通过不同的形式表现出来。静态方法不涉及多态,因为它们不是通过对象实例来调用的,而实例方法才体现多态性。 在提供的示例中,`Student`类展示了如何使用`static`修饰成员变量(`className`)和方法(`main`方法)。通过类方法`Student.className`的调用,我们可以看到类方法无需创建对象即可执行,这是`static`关键字带来的便利。同时,类方法与实例方法的调用方式和权限也进行了对比,突出了`static`的特性。 本章内容详细地介绍了`static`关键字在面向对象编程中的应用,这对于理解Java类和对象的交互以及设计良好的类结构至关重要。通过实践和理解这些概念,开发者可以更高效地编写和维护可扩展的代码。

设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息 组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个 属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学 分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法 等)。 课程号 课程名 学分 学时 课程类型 courId courName courCredit courHours courType E052026 Linux 操作系统 3 56 专业选修 S052005 面向对象程序设计 3.5 56 专业教育 S052006 面向对象程序设计实验 1 32 专业教育 S052037 数据库原理及应用 3 48 专业教育 S052011 数据库原理及应用实验 1 32 专业教育 S052049 操作系统 4 64 专业教育 要求: (1)创建一个课程类 Course,定义该类的各个属性(如上表第二行),为个属性设置相应 的 setter/getter 方法。 (2)定义一个没有参数和带有全部参数的构造方法。 (3)重写 toString()方法,返回课程的信息。 (4)在该类中定义一个类变量 passingScore,及格标准为 60. (5)新建测试类,在 main 方法中创建一个大小为 6 的课程数组,把上面表格中的 6 门课信 息保存在该数组中。利用增强型循环输出课程的信息。 (6)在测试类中定义一个静态方法 printCourses(Course[] courses),通过该方法输出课程中的 信息。 10 (7)在测试类中定义一个静态方法 printCourses(Course[] courses,float credit),通过该方法输 出学分等于 credit 的课程信息。 (8)测试类放在包名为 com.sy3.exe02.test 包中,其它类放在 com.sy3.exa02 包中。 (知识点:类的定义,对象的创建,构造方法的使用,对象数组,静态变量和静态方法,方 法重载) (注意:课程的信息可以直接给定,不一定要通过键盘输入)

2023-06-22 上传