Java基础--面向对象(2)

7 阅读1分钟

1. 类和对象

  • 所谓类就是一个事物属性的结合体 (结构体)
  • 而对象就是相对于类的一个专属变量,拥有类的所有属性
  • 把对象传递给方法--传递的是对象的内存地址值

image.png

2. Java中对象的内存分配

(1) 加载class文件: 将Mmory的字节码文件加载到方法区,加载main方法到栈内存;

(2) 申明局部变量: 创建对象(new),在堆中开辟空间 "Student stu";stu就类似于数组名,存储位于堆内存的地址;

(3) 堆中开辟空间: 其实此地址不是真正的物理地址,Java刻意隐藏了地址 0x0011只是在堆中找到对象的一个线索)

(4)显式初始化: 就是在私有化成员变量那里给变量赋值,一般不常用;

(6)赋值地址值: 把地址值复制到变量stu中;

image.png

最后main方法结束后,堆内存的对象也会随着消失(局部变量);

但是方法区的字节码文件不会消失,随着关闭IDEA编辑器消失; image.png

3. java中的this

this的本质:代表方法调用者的内存地址

  • sout("局部变量" + age) ---- 就近原则,直接使用方法内的age = 10;
  • sout("this.age" + "正在学习") ---- 方法调用者: 0x0022 的age是19; image.png