我们在 面向对象①中学习了,结构化程序设计。
今天我们一起学习面向对象程序设计。
学习面向对象程序设计就要了解,在面向对象中重要的知识点。
继承 、 多态 、 抽象 、 接口
我们会在接下来的课程中一一学习。
今天的任务是,修改 面向对象① 中的Student类,进行面向对象程序设计。
Student类
public class Student {
public final static byte MALE = ;
public final static byte FEMALE = ;
public final static byte UNDERGRAFUATION = ;
public final static byte SPECIAL = ; private String name; //学生姓名
private byte sex; // 性别(性别男、女)
private byte level; //学历水平(本科 专科)
private int grade; //年级
// 私有的外界不能访问,需要通过getter setter方法访问 public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex==MALE?"男":"女";
} public void setSex(byte sex) {
if (sex!=&&sex!=){
return;
}
this.sex = sex;
} public String getLevel() {
return level==?"本科":"专科";
} public void setLevel(byte level) {
if (level!=&&level!=){
return;
}
this.level = level;
} public int getGrade() {
return grade;
} public void setGrade(int grade) {
this.grade = grade;
} /**
* 初始化
*/
public void init(){
name = "张三";
sex = MALE;
level = SPECIAL;
grade = ;
}
/**
* 升级
*/
public void upgrade(){
grade++;
if (level==&&grade>){
grade = ;
}
if (level==&&grade>){
grade = ;
}
} public void downgrade(){
grade--;
grade = grade<?:grade;
} /**
* 输出函数,输出学生的信息。
*/
public void print(){
System.out.println("输出姓名:"+name);
System.out.println("输出性别:"+getSex());
System.out.println("输出学历:"+getLevel());
System.out.println("输出年级:"+grade);
} }
测试主函数:
public class Test { public static void main(String[] args) {
Student stu = new Student();
stu.init(); //函数赋值 stu.print();
System.out.println(); stu.upgrade();
stu.print();
} }
测试结果:
输出结果和上一篇案例2的输出结果一致。
我们修改了上一篇的性别,学历水平表示方法。
发现不用修改多处信息,这就是面向对象的好处。
总结一下学习的新知识点。
性别用byte, 使用的好处是,byte储存空间大小位1字节,不易出错。
私有变量是属于类自己的,外界要的到只能通过getter 和 setter方法。
getter和setter方法快速生成如下图所示:
在编译器上右击--->选择generate---->点击Getter and Setter---->选择私有变量
然后就得到了Getter and Setter方法。
性别跟学历是byte类型,如果我们想要返回(return)一个字符串,就要把函数的类型改成String。