封装的概述
封装是面向对象的三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界成员变量都是隐藏在对象内部的,外界是无法直接操作的,Java中的封装是指将对象的属性和方法封装在类中,以保护数据的安全性和完整性,同时提供公共接口供其他对象访问。Java中通过访问控制符(public、protected、private)来控制类的成员属性和方法的访问范围,从而实现类的封装。
封装原则
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏性息的操作和访问,成员变量private,提供对应的get和set方法
封装类可以包含以下成员:
-
成员变量:定义类的属性,通常使用private关键字修饰,以保证数据的安全性。
-
成员方法:定义类的行为,通常使用public关键字修饰,以提供公共接口供其他对象访问。
-
构造方法:用于创建类的对象,通常使用public关键字修饰,以提供公共接口供其他对象访问。
-
内部类:定义在类内部的类,可以访问外部类的成员,用于实现封装和组合等功能。
封装类的优点:
-
提高了类的安全性和可维护性,避免了误操作和数据泄露等问题。
-
提供了统一的接口,使得类的使用更加方便和灵活。
-
实现了类的隐藏和保护,使得类的实现细节对外部不可见,更加安全和稳定。
-
实现了代码的复用和继承,提高了代码的可重用性和可扩展性
封装的流程
- 私有化成员变量,使用private关键字修饰
- 提供共有的get成员方法和set成员方法,在方法体中来进行合理判断
- 在构造方法中调用set成员方法进行合理的判断
现在是get成员方法和set成员方法的格式
set语法格式:
public void set+属性名首字母大写(形参){
属性=形参;
}
get语法格式:
public 返回值类型 get+属性名首字母大写(形参){
return 属性;
}
封装实例
创建类
public class people {
private int age;
public int getAge(){
return age;
}
public void setAge(int a){
if(a <= 150 && a >= 0)
age = a;
else System.out.println("年龄不合理");
}
}
- 代码第3行属性age修饰符为private,只能被类中的成员访问。
- 代码第5行和第9行的两种方法的修饰符为public,这是最宽松的访问控制级别,这两个方法可以被任何类访问,不管访问类与被访问类是否在同一个包中。
创建测试类
public class Testpeople{
public static void main(String [] args){
people g = new people();
g.setAge(18);
System.out.println( p.getAge());
}
}
运行结果为18