当前位置:网站首页>封装、继承、多态的联合使用实现不同等级学生分数信息的统计
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
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、测试结果

边栏推荐
- 21天学习挑战赛--第二天打卡(setSystemUiVisibility、导航栏、状态栏)
- 小程序对接企业微信客服
- 两个数组中用第二个数组的Value对比换第一个数组中的Key
- 1314元的七夕礼盒,收割了多少直男?
- ShanDong Multi-University Training #4 A、B、C、G
- 七夕疯狂搞钱的年轻人,一周赚14万
- 【黑马早报】尚乘数科上市13天,市值超阿里;北大终止陈春花聘用合同;新东方花近200亿退学费和遣散费;张小泉75%产品贴牌代工...
- "Lonely Walking on the Moon" is a powerful medicine, it can't cure the internal friction of happy twist
- RK1126编译gdb 板子上gdb调试程序
- 判断密码是否包含键盘连续字母
猜你喜欢

“蔚来杯“2022牛客暑期多校训练营2 G、J、K

Diffusion Models:生成扩散模型

倒计时 3 天|一起看云原生 Meetup 的六大议题

持续交付(四)Jenkins多线程任务执行

Why is Luo Zhenyu's A-share dream so difficult to fulfill?

集群监控——Zabbix

Neck modules of the yolo series

手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果

ShanDong Multi-University Training #4 A、B、C、G

【VSCode】一文详解vscode下安装vim后无法使用Ctrl+CV复制粘贴 使用Vim插件的配置记录
随机推荐
动规(16)-并查集基础题——亲戚(Relations)
Chinese valentine's day of young people crazy to make money, earn 140000 a week
“蔚来杯“2022牛客暑期多校训练营3 C
博尔赫斯-诗中的经典语段
Motion Rule (16)-Union Check Basic Questions-Relations
Billboard
【PHP实现微信公众平台开发—基础篇】第1章 课程介绍
广告电商系统开发之订单处理
Hit the interview!The latest interview booklet of Ali Jin, nine silver and ten is stable!
PMP每日一练 | 考试不迷路-8.4(包含敏捷+多选)
面试官:连 INSERT INTO SET 都不知道怎么用,你这3年都干些什么了?
8/3 训练日志 (树状数组+区间覆盖+思维+01字典树)
高手,云集在于REST、gRPC 和 GraphQL之间!
Django使用腾讯云发送短信并存入redis
持续交付(三)Jenkinsfile语法使用介绍
项目里的各种配置,你都了解吗?
Systemui qsSetting添加新图标
“蔚来杯“2022牛客暑期多校训练营5 B、C、F、G、H、K
项目里的各种配置,你都了解吗?
做项目管理有且有必要了解并学习的重要知识--PMP项目管理