![Android移动应用开发技术与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/15/40681015/b_40681015.jpg)
上QQ阅读APP看书,第一时间看更新
实例3-1:一个典型流程控制应用
例如下面的应用,先定义一个接口,该接口的代码如下:
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/84_01.jpg?sign=1738837811-CkiiUyX41JePE7rPLPAs4hIXITUQmfbg-0-654fabc0d106d7286c5d08e4779e39e7)
上面的接口定义了一个getGrade方法,该方法用于获得学生的学分等级。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/84_02.jpg?sign=1738837811-s8J9j1KUrG4T0Twwm8WFhHJHbaSK4qWX-0-2fccd0b49c5ead9cb957337af01128a2)
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/85_01.jpg?sign=1738837811-E8vF1lbjSflBITgtpFxneZLtXcjEDzir-0-ffedfb5f384682032c89b978e8fec5ff)
此类为抽象类,将本科生和研究生抽象成学生类。成员变量表示了学生的姓名、学生类型、成绩、年级,以及学分等级。成员函数分别表示了设置和获得学生姓名、类型、成绩、年级、学分等级。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/85_02.jpg?sign=1738837811-PGs4JH1XgiIR9Ul0HCwL9KQeWXDUxuHW-0-50bb7e40f6f0c31cd51d7cab27de3cc9)
为了能够获得学生学分等级,定义一个类用于实现GradeCalculate接口,并重写getGrade函数用于计算本科生学分等级。采用if-else判断成绩属于某个区间,用以返回对应的学分等级。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/85_03.jpg?sign=1738837811-aqKDX0gZ6WOrWT4cRi1p19D4MvTpUjHn-0-959fcf2e20c28ecf6ea0991c7fe178cc)
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/86_01.jpg?sign=1738837811-3Rm1uQBNJsT8cP5GXMr2K07Be8gQ1pZ7-0-2140f1d8e1d5cb822ec67220279905b2)
由于研究生的学分等级和本科生的学分等级计算方法不同,因此需要重新定义一个类用于计算研究生的学分等级。该类同样实现了GradeCalculate接口。计算方法采用switch循环进行。到此已将用于计算学生学分等级的方法全部实现,现在需要定义对应的学生类型。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/86_02.jpg?sign=1738837811-YvYpBEAnDDRH0i1GUW23n3KPhlJr4vMy-0-081b8099ac95b3163c2ca0782f3ccebf)
此类为本科生类,继承了学生抽象类。该类包含一个构造函数,用于初始化所创建的对象实例。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/86_03.jpg?sign=1738837811-KXPRkyTZ8rogzNqKCT1aI7HkDXonndtL-0-274f40cb7f07c974b782795b7052d5c7)
同样,还需要一个研究生类。该类也是继承至学生抽象类。构造函数也用以初始化对象实例。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/86_04.jpg?sign=1738837811-gY7iMV1hrhjnfTu0hg0wp5ekiPsAPY1D-0-3ecd9bc3920da870f608085b38edcce4)
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/87_01.jpg?sign=1738837811-2IP202wfSTstM0F7YmHSRcrabpJGuCjk-0-f0e80d97c4cae442c9c6b98beef3f296)
在定义完所有类以后,创建一个test类,用于测试所有的类和方法。这里定义了十个学生对象的数组用于存放学生实例。首先用for循环将其初始化,并随机获得学生的成绩用于计算学分等级。初始化完成后,再使用for循环将学生的信息进行输出。
编译并运行程序,其结果如图3-18所示。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/87_02.jpg?sign=1738837811-fkTNjZUUOXV93qtnKi4Xh71iiT8nFCpH-0-69a46922b712326aa74b7d72d00f404e)
图3-18 一个典型的流程控制应用