java求最高成绩_笔记:Java求最高分数的学生成绩。

0818b9ca8b590ca3270a3433284dd417.png

法I:

//定义学生类,有姓名、英语成绩、数学成绩、物理成绩四个属性及其方法

class Student{

private String name;//设置名字

private int english;//英语成绩

private int math;//数学成绩

private int physics;//物理成绩

Student(){};//默认构造函数

Student(String name,int english,int math,int physics){//构造函数,初始化四个属性

setName(name);

setEnglish(english);

setMath(math);

setPhysics(physics);

}

//setter方法

public void setName(String name) {this.name = name;}

public void setEnglish(int english) {this.english = english;}

public void setMath(int math) {this.math = math;}

public void setPhysics(int physics) {this.physics = physics;}

//getter方法

public String getName() {return name;}

public int getEnglish() {return english;}

public int getMath() {return math;}

public int getPhysics() {return physics;}

//获取对象总分的方法

public int sum(){

return this.english+this.math+this.physics;

}

}

//测试类

public class Task1_1 {

public static void main(String[] args ){

Student DingYi = new Student("丁一",62,64,94);//生成对象,下同

Student LiuEr = new Student("刘二",46,97,27);

Student ZhangSan= new Student("张三",91,81,65);

Student LiSi = new Student("李四",73,75,51);

Student WangWu = new Student("王五",29,90,88);

//max嵌套比较求总分最大值对象

Student Max=max( DingYi , max( LiuEr , max ( ZhangSan , max( LiSi , WangWu))));

//输出最高分对象

System.out.println("总分最高的是" + Max.getName() +",\n英语成绩:"+Max.getEnglish()+"分\n数学成绩:"

+Max.getMath()+"分\n物理成绩:"+Max.getPhysics()+"分\n他(她)的总分是" + Max.sum() + "分。");

}

//max()方法,返回最大值对象

public static Student max(Student a,Student b){

return a.sum()>b.sum()? a : b;

}

}总结:

1,、sum()方法用对象属性进行比较,返回对象本身(Student),而不是直接比较对象属性(sum),否则返回对象属性时还要再次判断返回的谁的属性。

2、

max使用时嵌套调用,免去了循环比较,但扩展性不好。

3、return是可以通过三目比较运算符实现,简化代码。

4、缺点:类的属性构成不太合理。

法II:

//分数类

class score{

private int English;//英语

private int Math;//数学

private int Physics;//物理

//setter方法

public void setEnglish(int english) {English = english;}

public void setMath(int math) {Math = math;}

public void setPhysics(int physics) {Physics = physics;}

//getter方法

public int getEnglish() {return English;}

public int getMath() {return Math;}

public int getPhysics() {return Physics;}

}

//学生类

class Student extends score{

private String name;//姓名属性

Student(String name){this.name=name;}//构造方法

Student(String name,int English,int Math,int Physics){//构造方法

this(name);

super.setEnglish(English);

super.setMath(Math);

super.setPhysics(Physics);

}

public void setName(String name) {this.name = name;}//setter

public String getName() {return name;}//getter

public int sum(){//求得总分的方法

return super.getEnglish()+super.getMath()+super.getPhysics();

}

}

//测试类

public class Task1_2 {

public static void main(String[] args ){

Student DingYi = new Student("丁一",62,64,94);//生成对象,下同

Student LiuEr = new Student("刘二",46,97,27);

Student ZhangSan= new Student("张三",91,81,65);

Student LiSi = new Student("李四",73,75,51);

Student WangWu = new Student("王五",29,90,88);

//max嵌套比较求总分最大值对象

Student Max=max( DingYi , max( LiuEr , max ( ZhangSan , max( LiSi , WangWu))));

//输出最高分对象

System.out.println("总分最高的是" + Max.getName() +",\n英语成绩:"+Max.getEnglish()+"分\n数学成绩:"

+Max.getMath()+"分\n物理成绩:"+Max.getPhysics()+"分\n他(她)的总分是" + Max.sum() + "分。");

}

//max()方法,返回最大值对象

public static Student max(Student a,Student b){

return a.sum()>b.sum()? a : b;

}

}总结: 1.通过继承实现。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值