




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上第4章 Java面向对象高级特性1. 指出下面程序中出现编译错误的行数及其原因。01. public class Outer 02. private class Inner 03. static String name=new String("Inner");04. public void method()05. System.out.println(name);06. 07. 08. public static void main(String args) 09. Inner a=new Outer().new Inner();10. a.met
2、hod();11. 12. 上述代码中第3行会出现编译错误,内部类Inner中的成员变量不能定义为static。2. 请完成下面程序,使得程序可以输出枚举常量值:RED、GREEN和BLUE。01. public class Ball 02. public enum T 03. RED, GREEN, BLUE 04. 05. public static void main(String args) 06. Ball.T t=Ball.T.values();07. for(int i=0;i<t.length;i+) 08. System.out.println(ti);09. 10.
3、11. 3. 请完成下面程序,使得程序可以输出"hi"。01. public class Car 02. private class Engine 03. Engine() 04. drive(); 05. 06. 07. public static void main(String args) 08. new Car().go();09. 10. void go() 11. new Engine();12. 13. void drive() 14. System.out.println("hi");15. 16. 4. 应用抽象类及继承编写程序,输出本
4、科生及研究生的成绩等级。要求:首先设计抽象类Student,它包含学生的一些基本信息:姓名、学生类型、三门课程的成绩和成绩等级等。其次设计Student类的两个子类:本科生类Undergraduate和研究生类Postgraduate,二者在计算成绩等级时有所区别,具体计算标准如表所示。最后创建测试类进行测试。学生成绩等级本科生标准研究生标准平均分85-100:优秀平均分90-100:优秀平均分75-85: 良好平均分80-90: 良好平均分65-75: 中等平均分70-80: 中等平均分60-65: 及格平均分60-70: 及格平均分60以下:不及格平均分60以下:不及格/抽象类Studen
5、t01. abstract class Student 02. final static int COURSE_COUNT=3;03. private String name;04. private String type;05. private int scores;06. private String grade;07. public Student(String name)08. =name;09. 10. public void setName(String name)11. =name;12. 13. public String getName()
6、14. return name;15. 16. public void setType(String type)17. this.type=type;18. 19. public String getType()20. return type;21. 22. public void setScores(int scores)23. this.scores=scores;24. 25. public int getScores()26. return scores;27. 28. public void setGrade(String grade)29. this.grade=grade;30.
7、 31. public String getGrade()32. return grade;33. 34. public abstract String calculateGrade();35. /本科生类01. public class Undergraduate extends Student02. public Undergraduate(String name,int scores)03. super(name);04. this.setType("本科生");05. this.setScores(scores);06. 07. public String calc
8、ulateGrade()08. int average;09. int sum=0;10. int scores;11. scores=this.getScores();12. for(int i=0;i<Student.COURSE_COUNT;i+)13. sum+=scoresi;14. 15. average=sum/Student.COURSE_COUNT;16. if(average>=85)17. return "优秀"18. else if(average>=75)19. return "良好"20. else if(a
9、verage>=65)21. return "中等"22. else if(average>=60)23. return "及格"24. else25. return "不及格"26. 27. /研究生类01. public class Postgraduate extends Student02. public Postgraduate(String name,int scores)03. super(name);04. this.setType("研究生");05. this.setScores(s
10、cores);06. 07. public String calculateGrade()08. int average;09. int sum=0;10. int scores;11. scores=this.getScores();12. for(int i=0;i<Student.COURSE_COUNT;i+)13. sum+=scoresi;14. 15. average=sum/Student.COURSE_COUNT;16. if(average>=90)17. return "优秀"18. else if(average>=80)19. r
11、eturn "良好"20. else if(average>=70)21. return "中等"22. else if(average>=60)23. return "及格"24. else25. return "不及格"26. 27. /测试类01. public class StudentTest 02. public static void main(String args)03. Student s=new Student10;04. int scores=new int10Student.C
12、OURSE_COUNT;05. for(int i=0;i<5;i+)06. for(int j=0;j<Student.COURSE_COUNT;j+)07. scoresij=(int)(Math.random()*61+40);08. 09. si=new Undergraduate("本科生"+(i+1),scoresi);10. si.setGrade(si.calculateGrade();11. 12. for(int i=5;i<10;i+)13. for(int j=0;j<Student.COURSE_COUNT;j+)14. s
13、coresij=(int)(Math.random()*61+40);15. 16. si=new Postgraduate("研究生"+(i-4),scoresi);17. si.setGrade(si.calculateGrade();18. 19. int c;20. for(int i=0;i<10;i+)21. System.out.print(si.getName()+"t");22. System.out.print(si.getType()+"t");23. c=si.getScores();24. for(in
14、t j=0;j<Student.COURSE_COUNT;j+)25. System.out.print(cj+"t");26. 27. System.out.println(si.getGrade();28. 29. 30. 运行结果:本科生1本科生939068良好本科生2本科生768958中等本科生3本科生796690良好本科生4本科生958598优秀本科生5本科生547853及格研究生1研究生836186中等研究生2研究生915785中等研究生3研究生709655中等研究生4研究生437562及格研究生5研究生438061及格5. 应用枚举类编写程序,根据第4题
15、的要求输出本科生及研究生的成绩等级。要求:将学生成绩等级定义成枚举类,其它功能不变,完成类的定义并进行测试。/抽象类01. abstract class Student 02. /枚举类定义03. static enum Grade 04. DISTINCTION("优秀"), 05. MERIT("良好"), 06. AVERAGE("中等"), 07. PASS("及格"), 08. FAIL("不及格");09. private String scoreGrade;10. Grade(St
16、ring scoreGrade) 11. this.scoreGrade = scoreGrade;12. 13. public String getScoreGrade() 14. return scoreGrade;15. 16. 17. final static int COURSE_COUNT = 3;18. private String name;19. private String type;20. private int scores;21. private Grade sgrade;22. public Student(String name) 23. =
17、name;24. 25. public void setName(String name) 26. = name;27. 28. public String getName() 29. return name;30. 31. public void setType(String type) 32. this.type = type;33. 34. public String getType() 35. return type;36. 37. public void setScores(int scores) 38. this.scores = scores;39. 40.
18、public int getScores() 41. return scores;42. 43. public void setGrade(Grade sgrade) 44. this.sgrade = sgrade;45. 46. public Grade getGrade() 47. return sgrade;48. 49. public abstract Grade calculateGrade();50. /本科生类01. public class Undergraduate extends Student02. public Undergraduate(String name,in
19、t scores)03. super(name);04. this.setType("本科生");05. this.setScores(scores);06. 07. public Grade calculateGrade()08. int average;09. int sum=0;10. int scores;11. scores=this.getScores();12. for(int i=0;i<Student.COURSE_COUNT;i+)13. sum+=scoresi;14. 15. average=sum/Student.COURSE_COUNT;1
20、6. if(average>=85)17. return Grade.DISTINCTION;18. else if(average>=75)19. return Grade.MERIT;20. else if(average>=65)21. return Grade.AVERAGE;22. else if(average>=60)23. return Grade.PASS;24. else25. return Grade.FAIL;26. 27. /研究生类01. public class Postgraduate extends Student02. public
21、Postgraduate(String name,int scores)03. super(name);04. this.setType("研究生");05. this.setScores(scores);06. 07. public Grade calculateGrade()08. int average;09. int sum=0;10. int scores;11. scores=this.getScores();12. for(int i=0;i<Student.COURSE_COUNT;i+)13. sum+=scoresi;14. 15. average
22、=sum/Student.COURSE_COUNT;16. if(average>=90)17. return Grade.DISTINCTION;18. else if(average>=80)19. return Grade.MERIT;20. else if(average>=70)21. return Grade.AVERAGE;22. else if(average>=60)23. return Grade.PASS;24. else25. return Grade.FAIL;26. 27. /测试类01. public class StudentTest 0
23、2. public static void main(String args)03. Student s=new Student10;04. int scores=new int10Student.COURSE_COUNT;05. for(int i=0;i<5;i+)06. for(int j=0;j<Student.COURSE_COUNT;j+)07. scoresij=(int)(Math.random()*61+40);08. 09. si=new Undergraduate("本科生"+(i+1),scoresi);10. si.setGrade(s
24、i.calculateGrade();11. 12. for(int i=5;i<10;i+)13. for(int j=0;j<Student.COURSE_COUNT;j+)14. scoresij=(int)(Math.random()*61+40);15. 16. si=new Postgraduate("研究生"+(i-4),scoresi);17. si.setGrade(si.calculateGrade();18. 19. int c;20. for(int i=0;i<10;i+)21. System.out.print(si.getNa
25、me()+"t");22. System.out.print(si.getType()+"t");23. c=si.getScores();24. for(int j=0;j<Student.COURSE_COUNT;j+)25. System.out.print(cj+"t");26. 27. System.out.println(si.getGrade().getScoreGrade();28. 29. 30. 6. 应用抽象类和接口编写程序,根据第4题的要求输出本科生及研究生的成绩等级。要求:首先设计一个接口,接口中包含用
26、于计算学生成绩等级的抽象方法,设计两个类分别实现上述接口,这两个类分别表示本科生及研究生的成绩等级标准。其次设计抽象类Student及其两个子类本科生类Undergraduate和研究生类Postgraduate,两个子类分别设置各自的成绩等级计算标准。最后创建测试类进行测试。/定义接口01. public interface GradeCalculate 02. public String getGrade(int scores);03. /本科生成绩等级计算标准01. public class UnderGradeCalculate implements GradeCalculate 02
27、. public String getGrade(int scores)03. int average;04. int sum=0;05. for(int i=0;i<Student.COURSE_COUNT;i+)06. sum+=scoresi;07. 08. average=sum/Student.COURSE_COUNT;09. if(average>=85)10. return "优秀"11. else if(average>=75)12. return "良好"13. else if(average>=65)14. r
28、eturn "中等"15. else if(average>=60)16. return "及格"17. else18. return "不及格"19. 20. /研究生成绩等级计算标准01. public class PostGradeCalculate implements GradeCalculate 02. public String getGrade(int scores)03. int average;04. int sum=0;05. for(int i=0;i<Student.COURSE_COUNT;i+
29、)06. sum+=scoresi;07. 08. average=sum/Student.COURSE_COUNT;09. if(average>=90)10. return "优秀"11. else if(average>=80)12. return "良好"13. else if(average>=70)14. return "中等"15. else if(average>=60)16. return "及格"17. else18. return "不及格"19.
30、20. /抽象类01. abstract class Student 02. final static int COURSE_COUNT=3;03. private String name;04. private String type;05. private int scores;06. private String grade;07. private GradeCalculate criterion;08. public Student(String name)09. =name;10. 11. public void setName(String name)12. th
31、=name;13. 14. public String getName()15. return name;16. 17. public void setType(String type)18. this.type=type;19. 20. public String getType()21. return type;22. 23. public void setScores(int scores)24. this.scores=scores;25. 26. public int getScores()27. return scores;28. 29. public void se
32、tGrade(String grade)30. this.grade=grade;31. 32. public String getGrade()33. return grade;34. 35. public void setCriterion(GradeCalculate criterion)36. this.criterion=criterion;37. 38. public GradeCalculate getCriterion()39. return criterion;40. 41. /本科生类01. public class Undergraduate extends Student02. public Undergraduate(String name,int scores)03. super(name);04. this.setType("本科生");05. this.setScores(scores);06. this.setCriterion(new UnderGradeCalculate();07. this.setGrade(this.getCriterion().getGrade(scores
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国防晒霜产业竞争格局及发展盈利分析报告
- 2025-2030年中国铍铜合金市场运行态势及投资策略分析报告
- 2025-2030年中国速凝剂市场运行态势规划研究报告
- 2025-2030年中国茶黄素产业运行趋势及发展前景分析报告
- 2025辽宁省安全员-B证(项目经理)考试题库
- 2025-2030年中国节水灌溉行业运行现状及发展前景分析报告
- 2025年辽宁省建筑安全员知识题库附答案
- 2025-2030年中国羟乙基皂荚胶行业市场运行现状及投资发展前景预测报告
- 2025-2030年中国硫酸氧钒行业发展趋势及投资战略研究报告
- 凯里学院《创业经营管理》2023-2024学年第二学期期末试卷
- 注塑模具基础知识
- 2024年单招考试题
- 三年级数学下册期末测试卷及答案【可打印】
- 苏教版小学语文上册教学研究论文
- 片状锌粉行业分析!中国片状锌粉行业市场发展前景研究报告(2024版)
- 公铁两用牵引车市场发展预测和趋势分析
- 儿童绘本故事《我的情绪小怪兽》
- 部编版六年级下册道德与法治全册教案
- 3.1 导数的概念 课件 《高等数学》
- 2024版《供电营业规则》学习考试题库500题(含答案)
- 供货送货服务承诺书
评论
0/150
提交评论