在了解封装和get/set方法的作用之前,我们应该先明白为什么要引入封装和get/set方法。
我们都知道Java的三大特性:继承,封装,多态。同时我们做的程序设计追求的理念为“高内聚,低耦合”,高内聚是指类的内部数据操作细节由自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
所谓封装便是数据的隐藏,通常指禁止直接访问一个对象中的实际表示,而应通过操作接口来访问,这就是信息的隐藏。通俗来讲就是该露的露,该藏的藏,就比如一台电视机,作为用户来讲我们并不需要知道电视机的内部构造和运行原理,我们只需要通过遥控器(即少量的接口)来控制电视机的操作,这就是数据的封装。
接下来我们创建一个Student类,将其中的属性私有化,并创建get/set方法:
public class Student {
//private:除了包含该成员的类之外,其他任何类都无法访问这个成员。
private int id;//定义一个私有属性学号
private String name;//定义一个私有属性姓名
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
再新建一个Application类,在这个类中将Student实例化,这时候发现不能直接调用Student类中的属性:id和name,我们这时候就要通过get方法获得这个属性,用set方法对这个属性进行赋值。
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
s1.setId(20203251);
s1.setName("张三");
System.out.println(s1.getId());
System.out.println(s1.getName());
}
}
运行结果:
20203251
张三
通俗来讲可以理解为:
get方法是获得这个属性
set方法是给这个属性赋值
通过get/set方法可以实现封装,set方法中也可以增加一些数据合法的验证,从而保护数据,提高了程序安全性,并且隐藏了代码的实现细节,统一接口,便利了以后的系统的维护。
注:本篇文章仅个人见解,若有错误,欢迎指正!