虚拟机中的内存区域划分,只是程序界给出的一种虚拟的概念
- 栈:程序运行的区域,效率最高,方法的调用执行,基本数据类型定义(局部变量)
- 堆:用于存储引用数据类型的区域
- 方法区:所有类的方法都在方法区
- 计数器:当前线程所执行的字节码的行号指示器
-
本地方法区:执行native修饰的方法
非静态方法或属性必须通过对象进行调用,对于静态属性或方法通过类名或对象进行调用,但是不建议使用对象。
-
private私有化
调用者:通常说的是其它类(除了本身之外的类)
限制方案:缩小属性的可见范围,只能在本类中可见,其他类中不可见
思问题考:非静态的属性和方法只能通过对象进行调用,然后呢,通过对象去调用方法给属性进行赋值是赋值的一种方法,发现也可以通过对象直接调用属性来进行赋值操作,因此,就考虑两者之间有什么区别?
思考后的结果:如果是通过对象调用属性进行赋值,那么,调用者可以随意的去修改属性值,这种操作是不安全的,然后发现,使用方法的形式可以添加约束来限制调用者可赋值的一些规则。
需要处理的问题:如何能够避免让调用者去随意的修改属性值,其实就是如何能避免调用者查找到类中的具体属性,然后暴露出一些规则,让调用者可以进行正常的使用?
方案:将属性私有化,并提供带有规则的公共的方法以供调用者使用