三大特性:①:封装:对外部不可见、②:继承:扩展类的功能、③:多态:方法的重载,对象的多态性。
public static void main(String[] args) {
// TODO code application logic here
Student me = null;//声明对象
me = new Student("201131000419", "王大锤", 99, 80, 49.3);//实例对象,并用构造方法赋值
System.out.println("编码" + me.getStuno());
System.out.println("姓名" + me.getName());
System.out.println("数学成绩" + me.getMath());
System.out.println("英语成绩" + me.getEnglish());
System.out.println("电脑成绩" + me.getComputer());
System.out.println("总成绩" + me.sum());
System.out.println("平均成绩" + me.avg());
System.out.println("最高成绩" + me.max());
System.out.println("最低成绩" + me.min());
}
private String stuno;//学号
private String name;//姓名
private double math;//数学
private double english;//英语
private double computer;//计算机
public Student(String s, String n, double m, double e, double c) {//定义5个参数的初始化,为类中的属性初始化
this.setStuno(s);
this.setName(n);
this.setMath(m);
this.setEnglish(e);
this.setComputer(c);
}
//setter getter 方法
public void setStuno(String s) {//设置编号
stuno = s;
}
public void setName(String n) {//设置姓名
name = n;
}
public void setMath(double m) {//设置数学成绩
math = m;
}
public void setEnglish(double e) {//设置英语成绩
english = e;
}
public void setComputer(double c) {//设置电脑成绩
computer = c;
}
public String getStuno() {//取得编号
return stuno;
}
public String getName() {//取得姓名
return name;
}
public double getMath() {//取得数学成绩
return math;
}
public double getEnglish() {//取得英语成绩
return english;
}
public double getComputer() {//取得电脑成绩
return computer;
}
public double sum() {//总成绩
return math + english + computer;
}
public double avg() {//平均分
return sum() / 3;
}
public double max() {//最大值
double max = math;
if (english > max) {
max = english;
}
if (computer > max) {
max = computer;
}
return max;
}
public double min() {//最小值
double min = math;
if (english < min) {
min = english;
}
if (computer < min) {
min = computer;
}
return min;
}
Person per = null;//声明对象;开辟栈空间
per = new Person();//实例对象;开辟堆空间
属性保存在堆内存之中,而方法是保存在全局代码区之中;
类是引用数据类型;引用数据就是传递对堆内存的使用权,可以同时为一个堆内存空间定义多个栈的引用操作;
一个栈内存只能指向一个堆内存,一个堆内存可以指向多个栈内存;
封装性:private;setter;getter;
构造方法:①、构造方法名称必须与类名一致。②、构造方法的声明处不能有任何返回值类型的声明。③、不能在构造方法中使用return返回值。
匿名对象:只开辟了堆内存的实例对象;使用一次就等待被垃圾回收机制回收;
小垃圾实例,哈哈
public class myStudent {
}
class Student {
}