面向对象之创建对象内存分析及简单小结

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.类:

    • 静态的属性 属性
    • 动态的行为 方法

————————————————————————————————————————————————————————————————————



4.更多参考

狂神说Java

posted @ 2022-05-27 16:07  哼哼哈¥  阅读(44)  评论(0编辑  收藏  举报