- Android移动应用开发技术与实践
- 夏辉 杨伟吉 张瑾主编
- 553字
- 2025-02-18 06:41:47
实例3-1:一个典型流程控制应用
例如下面的应用,先定义一个接口,该接口的代码如下:

上面的接口定义了一个getGrade方法,该方法用于获得学生的学分等级。


此类为抽象类,将本科生和研究生抽象成学生类。成员变量表示了学生的姓名、学生类型、成绩、年级,以及学分等级。成员函数分别表示了设置和获得学生姓名、类型、成绩、年级、学分等级。

为了能够获得学生学分等级,定义一个类用于实现GradeCalculate接口,并重写getGrade函数用于计算本科生学分等级。采用if-else判断成绩属于某个区间,用以返回对应的学分等级。


由于研究生的学分等级和本科生的学分等级计算方法不同,因此需要重新定义一个类用于计算研究生的学分等级。该类同样实现了GradeCalculate接口。计算方法采用switch循环进行。到此已将用于计算学生学分等级的方法全部实现,现在需要定义对应的学生类型。

此类为本科生类,继承了学生抽象类。该类包含一个构造函数,用于初始化所创建的对象实例。

同样,还需要一个研究生类。该类也是继承至学生抽象类。构造函数也用以初始化对象实例。


在定义完所有类以后,创建一个test类,用于测试所有的类和方法。这里定义了十个学生对象的数组用于存放学生实例。首先用for循环将其初始化,并随机获得学生的成绩用于计算学分等级。初始化完成后,再使用for循环将学生的信息进行输出。
编译并运行程序,其结果如图3-18所示。

图3-18 一个典型的流程控制应用