/*编写一个学生类 有年龄 英语、数学、计算机三门成绩 求平均分、最高分、最低分 */
package test;
class Student{
private String name;
private int age;
private float computer;
private float math;
private float english;
//构造函数
public Student(String n,int a,float e,float m,float c) {
this.setName(n);
this.setAge(a);
this.setMath(m);
this.setEnglish(e);
this.setComputer(c);
}
public float sum() {
return english + math + computer;
}
public float avg() {
return this.sum()/3;
}
public float max() {
float max = english>math?english:math;
max = max>computer?max:computer;
return max;
}
public float min() {
float min = english<math?english:math;
min = min<computer?min:computer;
return min;
}
public String getInfo() {
return "学生信息:\n" +
"\t|-姓名:" + this.getName() + "\n" +
"\t|-年龄:" + this.getAge() + "\n" +
"\t|-数学成绩:" + this.getMath() + "\n" +
"\t|-英语成绩:" + this.getEnglish() + "\n" +
"\t|-计算机成绩:" + this.getComputer() ;
}
public void setName(String n) {
name = n;
}
public void setAge(int a){
age = a;
}
public void setMath(float m) {
math = m;
}
public void setEnglish(float e) {
english = e;
}
public void setComputer(float c) {
computer = c;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public float getMath(){
return math;
}
public float getEnglish(){
return english;
}
public float getComputer() {
return computer;
}
}
public class ooDemo12 {
public static void main(String args[]) {
// System.out.println("Hello World");
Student stu = new Student("张三",30,89.0f,92.5f,76.5f);
System.out.println("总分:" + stu.sum());
System.out.println("平均分:" + stu.avg());
System.out.println("最高分:" + stu.max());
System.out.println("最低分:" + stu.min());
System.out.println(stu.getInfo());
}
};
>>>
总分:258.0
平均分:86.0
最高分:92.5
最低分:76.5
学生信息:
|-姓名:张三
|-年龄:30
|-数学成绩:92.5
|-英语成绩:89.0
|-计算机成绩:76.5
总结:
1.类与对象的关系:
- 类是对象的模板,对象是类的实例
2.垃圾的产生
3.对象的产生格式:
- 声明对象:类名称 对象名称 = null;如果直接使用此对象,会出现空指向异常
- 实例化对象:对象名称=new 类名称(); //开辟堆内存空间,才可以直接使用
4.封装性:private,以及setter、getter
5.构造方法:
- 与类名相同的方法
- 无返回值声明
- 如果一个类中没有明确声明一个构造函数,则会自动生成一个什么都不做的构造函数
- 构造方法允许重载