目录
Java封装
# 什么是封装?
public, private等访问修饰符 用来指定类、方法、变量的 访问控制权限 =======

目录
Java封装
# 什么是封装?
public, private等访问修饰符 用来指定类、方法、变量的 访问控制权限 >>>>>>> 593e4ea (添加了SSM) 一句话:属性私有,让外部不能直接访问
操作入口变成 get 和 set 方法
# private 例子
1.用 private 进行修饰,表示私有的,修饰的属性只能在本类中访问
2.对外提供简单的操作入口,以后外部程序想要访问这些属性 必须通过这些简单入口进行访问:
对外提供两个公开的方法,分别是 set 方法和 get 方法
想修改这个属性,调用 set 方法
想读取这个属性,调用 get 方法
3.set 方法例子
public void setAge(int a){
age = a;
}
4.get 方法例子
public int getAge(){
return age;
}
除了 private,还有封装程度靠中间的默认(package private)、protected
访问级别 | 同一包内的其他类 | 子类 | 全局 |
---|---|---|---|
private | ✘ | ✘ | ✘ |
默认 | ✔ | ✘ | ✘ |
protected | ✔ | ✔ | ✘ |
public | ✔ | ✔ | ✔ |
# static 是非访问修饰符
显然,封装里面的 set 和 get 方法不使用 static 关键字
- 无 static 修饰的方法
引用.方法名(实参)
- 含 static 修饰的方法
类名.方法名(实参)
类中对象都具有的属性,并且所有对象的这个属性都一样,使用 static,存在方法区。方法也是如此
不加 static 的 ----> 对象级别 带着 static 的 ----> 类级别
# 从实例变量到静态变量
- 实例变量 假设这样一种实例变量,一个对象就有一份,100 个对象就有 100 份.这种设计有什么缺点呢?
例子: 用 Chinese 类创建 100 个不同的对象,但是每个对象的国籍其实都是中国.
- 静态的实例变量,也就是类变量
在类加载的时候初始化,不需要创建对象,内存就开辟了,存储在方法区内存中!
什么时候成员变量声明为实例变量呢? 所有对象都有这个属性,但这个属性的值随着对象变化而变化
什么时候成员变量声明为静态变量呢? 所有对象都有这个属性,并且所有对象的这个属性的值是一样的,建议定义为静态变量,节省内存的开销。
- 跟随系统
- 浅色模式
- 深色模式
- 阅读模式