在Java编程中,设计模式是一种重要的软件设计方法,它可以帮助我们创建可扩展和可维护的代码。在这个Java作业中,主要涉及了两个核心知识点:接口(Interface)的使用和工厂方法的设计模式。
1. 接口(Interface)的使用:
接口在Java中是一个完全抽象的类,它只能包含抽象方法(没有方法体的方法)和常量。在这个例子中,`Common`接口定义了一个名为`runtimer`的方法,该方法接收三个double类型的参数并返回一个double值。`Car007`和`Plane`类都实现了`Common`接口,这意味着它们必须提供`runtimer`方法的具体实现。这种设计使得我们可以轻松地添加新的交通工具类,只要这些类也实现`Common`接口即可。在`ComputerTime`类的`main`方法中,通过传入交通工具类型(如"Plane"或"Car007"),动态加载对应的类并调用`runtimer`方法来计算运行时间。这种设计符合开闭原则,即对扩展开放,对修改关闭。
2. 工厂方法设计模式:
在`ComputerTime`类中,通过`Class.forName()`和`newInstance()`方法动态创建交通工具类的对象,这实际上运用了工厂方法设计模式的思想。工厂方法模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这个例子中,`Class.forName()`方法根据传入的字符串参数(交通工具的类名)动态加载对应的类,然后`newInstance()`方法创建该类的实例。这种方式允许我们在运行时根据用户输入来决定创建哪种交通工具对象,无需在`ComputerTime`类中硬编码特定交通工具的创建逻辑。
此外,作业还提到了一个简单的Java类设计,即创建`Student`类:
2. `Student`类设计:
`Student`类代表一个学生,它包含了以下属性:
- `id`:一个`long`类型的变量,用于存储学生的唯一标识(学号)。
- `name`:一个`String`类型的变量,存储学生的姓名。
- `age`:一个`int`类型的变量,表示学生的年龄。
- `sex`:一个`boolean`类型的变量,用`true`表示男性,`false`表示女性。
- `phone`:一个`String`类型的变量,存储学生的联系电话。
为了使`Student`类更完整,通常还需要提供构造函数、getter和setter方法,以及可能的其他业务逻辑方法,如打印学生信息等。这样,`Student`类就能作为表示学生数据的容器,并与其他类进行交互。
通过这个Java作业,我们可以学习到如何利用接口和工厂方法来设计可扩展的代码,以及如何创建和使用基本的Java类。这些概念在实际开发中非常常见,对于理解和编写高质量的Java应用程序至关重要。