面向对象的三大特征
- 封装
- 继承
- 多态
封装
什么是封装
- 就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。
例如:
public class Student{ String name; //姓名 double chinese; //语文成绩 double math; //数学成绩 public void printTotalScore(){ System.out.println(name + "同学的各科总分是:" + (chinese + math)); } public void printAverageScore(){ System.out.println(name + "同学的各科平均分是:" + (chinese + main) / 2.0); } }
封装的设计规范
- 合理隐藏、合理暴露
如果是公开成员,可以使用public(公开)进行修饰;
如果是隐藏成员,使用private(私有,隐藏)进行修饰。
例如要使score变量不能被随意赋值,我们就可以把score变量隐藏起来,再写方法来约束score变量赋值的条件:
public class Student{ private double score; public void setScore(double score){ if(score >= 0 && score <= 100){ this.score = score; }else{ System.out.println("数据非法!"); } } public double getScore(){ return score; } }
这样外界就不能直接通过学生类给score赋值了,而是需要调用学生类里面的方法,并通过条件检查才能完成赋值,取值也是同样。对于方法,想要隐藏则直接把public改为private即可。
实体JavaBean(实体类)
什么是实体类
- 是一种特殊形式的类,满足以下两个条件:
- 这个类中的成员变量都要私有,并且要对外提供相应的getXxx,setXxx方法。
- 类中必须要有一个公共的无参的构造器。
(IDEA中可以使用快捷键来完成)
实体类的应用场景
- 实体类只负责数据存取,而对数据的处理交给其他类完成,以实现数据和数据业务处理相分离。
public class Student{ private String name; private double score; //getter setter方法 }
END