面向对象特征之一:封装与隐藏
1.作用和含义
- 不需要知道API具体的内部实现,只需要知道怎么用就行
- 高内聚(内部操作由自己完成,不允许外部干涉)、低耦合(对外暴露少量的方法用于使用)
- 隐藏对象内部的复杂性,只对外公开简单的接口
2. 封装性的体现
- 将类的属性xxx私有化(private),同时,提供公共(public)方法来获取(getXxx)和设置(setXxx)类的私有属性
- 不对外暴露的私有方法
- 单例模式
3.封装的体现,需要权限修饰符来配合
-
java规定的4种权限(从小到大排列):private,缺省,protect,public
-
4种权限可以用来修饰类及类的内部结果:属性、方法、构造器、内部类

2.code举例
public class AnimalTest {
public static void main(String[] args) {
// 赋值操作要受到属性的数据类型和存储范围的制约
Animal a = new Animal();
a.name = "大橘";
// 通过类中的方法对私有属性进行赋值
a.setLegs(-6);
a.age = 18;
a.show();
// 获取类中私有属性的值
System.out.println("类中私有属性的值为:" + a.getLegs());
}
}
class Animal {
String name;
int age;
// 外部无法直接访问属性,必须通过方法来给legs 设置值,避免外部直接通过对象.属性进行赋值
private int legs;
// 通过方法来设置 legs 的值,对legs进行封装,体现封装性
public void setLegs(int l) {
if(l >= 0 && l%2 == 0){
legs = l;
}else {
legs = 0;
}
}
// 通过方法来获取 legs 的值
public int getLegs() {
return legs;
}
public void eat() {
System.out.println("动物进食");
}
public void show() {
System.out.println("name =" + name + ",age = " + age + ",legs = " + legs);
}
}
“name =” + name + ",age = " + age + ",legs = " + legs);
}
}
本文介绍面向对象编程中的封装特性,包括其定义、作用以及如何在Java中实现。通过实例展示了私有属性与公共方法的使用,说明了如何保护类内部状态。

被折叠的 条评论
为什么被折叠?



