当前位置:网站首页>封装、继承、多态的联合使用实现不同等级学生分数信息的统计
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
2022-08-04 12:52:00 【郑同学要努力】
要求:根据不同学生的等级进行不同的分数成绩评定
1、封装
1、封装的概念
。。。
package bao;
abstract class Student {
final static int CourseNo = 3;// 课程
String name;// 姓名
String type; // 类型
int[] courses;// 成绩的数组
String courseGrade;// 等级
public Student(String name) {
this.name = name;
courses = new int[CourseNo];
courseGrade = " ";// 初始成绩等级为空字符
}
public abstract void calculateGrade();// 计算总成绩的抽象方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public void setCourseScore(int courseNumber, int courseScore) {
courses[courseNumber] = courseScore; // 按课程索引号设置课程的成绩
}
public int getCourseScore(int courseNumber) {
return courses[courseNumber];
}
public void setCourseGrade(String courseGrade) {
this.courseGrade = courseGrade;
}
public String getCourseGrade() {
return courseGrade;
}
}
2、继承
接口:。。。
抽象类:。。。
2.1、本科生继承学生类
package bao;
class Undergraduate extends Student {
public Undergraduate(String name) {
// 构造方法
super(name); // 使用super调用父类的构造方法
type = "本科生"; // 初始化父类的属性
}
@Override
public void calculateGrade() {
// 实现父类的抽象方法
int total = 0;
double average = 0;
for (int i = 0; i < CourseNo; i++) {
// 所有课程的成绩总和
total += courses[i];
}
average = total / CourseNo; // 计算平均成绩
if (average >= 90 && average < 100)
courseGrade = "优秀";
else if (average >= 80 && average < 90)
courseGrade = "良好";
else if (average >= 70 && average < 80)
courseGrade = "一般";
else if (average >= 60 && average < 70)
courseGrade = "及格";
else
courseGrade = "不及格";
}
}
2.2、 研究生继承学生类
package bao;
class Postgraduate extends Student {
public Postgraduate(String name) {
super(name);
type = "研究生";
}
public void calculateGrade() {
// 实现父类的抽象方法
int total = 0;
double average = 0;
for (int i = 0; i < CourseNo; i++) {
// 所有课程的成绩总和
total += courses[i];
}
average = total / CourseNo; // 计算平均成绩
if (average >= 95 && average < 100)
courseGrade = "优秀";
else if (average >= 85 && average < 95)
courseGrade = "良好";
else if (average >= 75 && average < 85)
courseGrade = "一般";
else if (average >= 65 && average < 75)
courseGrade = "及格";
else
courseGrade = "不及格";
}
}
3、多态
多态的概念:。。。
package bao;
public class Polymorphism {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student[] students = new Student[5];
// 父类引用子类的对象
students[0] = new Undergraduate("张三");
students[1] = new Undergraduate("赵薇");
students[2] = new Postgraduate("李四");
students[3] = new Undergraduate("杨密");
students[4] = new Postgraduate("唐洋");
for (int i = 0; i < 5; i++) {
students[i].setCourseScore(0, 88);
students[i].setCourseScore(1, 90);
students[i].setCourseScore(2, 96);
}
for (int i = 0; i < 5; i++) {
students[i].calculateGrade();// 调用各自类中的方法
}
System.out.println("姓名 " + " 类型" + " 成绩");
System.out.println("--------------------------------------------");
for (int i = 0; i < 5; i++) {
System.out
.println(students[i].getName() + " " + students[i].getType() + " " + students[i].getCourseGrade());
}
}
}
4、测试结果

边栏推荐
- 判断密码是否包含键盘连续字母
- The head module of the yolo series
- Access Huawei game anti-addiction, click the anti-addiction pop-up window, the game crashes
- Two years of independent development experience Programmers tell us the experience of making money (listen to the masters who really make money)
- 荧光磷脂PEG衍生物之一磷脂-聚乙二醇-荧光素,Fluorescein-PEG-DSPE
- Yolov5 test and train own dataset
- 【黑马早报】尚乘数科上市13天,市值超阿里;北大终止陈春花聘用合同;新东方花近200亿退学费和遣散费;张小泉75%产品贴牌代工...
- HDU1580 输出先手能取的方案数
- 获取本机IP地址的脚本
- Cows 树状数组
猜你喜欢

Motion Rule (16)-Union Check Basic Questions-Grid Game

The head module of the yolo series

ReentrantLock 原理

Cool and efficient data visualization big screen, it's really not that difficult to do!丨Geek Planet

干货丨数学规划视角下的分货优化解题思路

Focus!2022 interview must brush 461 interview questions summary + interview + resume template

《独行月球》猛药,治不了开心麻花内耗

Unity 3D模型展示框架篇之资源打包、加载、热更(Addressable Asset System | 简称AA)

RK1126编译gdb 板子上gdb调试程序

并发刺客(False Sharing)——并发程序的隐藏杀手
随机推荐
Geoffrey Hinton:深度学习的下一个大事件
获取本机IP地址的脚本
MogDB/openGauss 3.0 扩容及缩容
到底什么是真正的HTAP?
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
MySQL-数据类型
21天学习挑战赛--第二天打卡(setSystemUiVisibility、导航栏、状态栏)
sqlplus报错ORA-12547: TNS:lost contact解决
Tarjan 求有向图的强连通分量
来 TDengine 开发者大会,洞悉数据技术发展的未来趋势
Why is Luo Zhenyu's A-share dream so difficult to fulfill?
Hit the interview!The latest interview booklet of Ali Jin, nine silver and ten is stable!
双目立体视觉学习笔记(一)
什么是 DevOps?看这一篇就够了!
Motion Rule (16)-Union Check Basic Questions-Relations
备份控制文件
LeetCode Daily Question (858. Mirror Reflection)
使用COLMAP初步三维重建
Systemui qsSetting添加新图标
并发刺客(False Sharing)——并发程序的隐藏杀手