面向对象之创建对象内存分析及简单小结
java面向对象
1.创建对象内存分析
-
内存中有2个区域,一个是堆一个是栈,栈中存储的是一些引用和main方法,堆中有个特殊的区叫方法区,存放具体创建对象的一些属性值和方法。
- 方法区中加载了类,存放了main方法,常量池中放了一些要赋予的常量
- 方法区中有一块地方是静态方法区,static:和类一起加载
-
栈中存储的对象名是一个指向堆的内存地址,通过对象名.属性值和对象.方法名来对属性进行修改或者对方法进行调用
-
静态方法和变量随着类一起加载。可以随时调用
- 创建对象内存图
1.1 内存图代码演示:
package oopdemo01;
import oopdemo01.demo03.Pet;
public class Application {
public static void main(String[] args) {
Pet dog = new Pet();
dog.name="旺财";
dog.age=5;
dog.shot();
Pet cat = new Pet();
cat.name="咪咪";
cat.age=3;
cat.shot();
}
}
package oopdemo01.demo03;
public class Pet {
public static String name;
public static int age;
public void shot(){
System.out.println(this.name+"它叫了");
}
}
运行结果
旺财它叫了
咪咪它叫了
2.简单小结类与对象
-
1.类与对象:
- 类是一个模板:抽象的。
- 对象是一个具体的实例
-
2.方法:
- 方法定义、调用
-
3.对象的引用
-
引用类型、基本类型(8)
-
对象是通过引用来操作的:栈---->堆
-
-
4.属性:字段 Field (成员变量)
- 默认初始化:
- 数字: 0 0.0
- char: u0000
- boolean:false
- 引用:null
- 修饰符 属性类型 属性名=属性值!
-
5.象的创建和使用
- 必须使用new关键字创建对象, 构造器 Person zaodian=new Person();
- 对象的属性 zaodian.name
- 对象的方法 zaodian.sleep()
-
6.类:
- 静态的属性 属性
- 动态的行为 方法
————————————————————————————————————————————————————————————————————