Java基础:封装
封装
-
封装:指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法
-
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问
-
该露的露,该藏的藏
- 我们程序设计要追求“高内聚,低耦合”
- 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉
- 低耦合:仅暴露少量的方法给外部使用
-
封装(数据的隐藏)
- 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏
-
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段
-
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性
-
特点:
-
属性私有,通过 getter 和 setter 访问修改
-
提高程序的安全性,保护数据
-
隐藏代码的实现细节
-
统一接口
-
系统可维护增加
-
-
示例
public class Application { public static void main(String[] args) { Student s1 = new Student(); s1.setName("李华"); s1.setGender('男'); s1.setAge(999);//不合法的 s1.setId(10010); System.out.println(s1.getName() + "\t" + s1.getGender() + "\t" + s1.getAge() + "\t" + s1.getId()); } }
//类 private:私有 public class Student { //属性私有 private filed,只有本类才能访问,其他类都访问不了 private String name;//名字 private int id;//学号 private char gender;//性别 private int age;//年龄 //提供一些可以操作这个属性的方法 //提供一些public的get、set方法 //get:获得这个数据 public String getName() { return this.name; } //set:给这个数据设置值 public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { if (age>120 || age<0) {//不合法 this.age = 3; }else { this.age = age; } } }
输出
李华 男 3 10010
在示例中 public 方法是外部类访问该类成员变量的入口
通常情况下,这些方法被称为 getter 和 setter 方法因此,任何要访问类中私有成员变量的类都要通过这些 getter 和 setter 方法