java中的类实例化机制

定义一个Pet类

public class Pet {
    public String name;
    public  int age;
    
    public  void  shoot(){
        System.out.println("叫~~~");
    }
    
}

定义一个程序入口 Application 类

public class Application {
    public static void main(String[] args) {
       Pet dog = new Pet();
       dog.name = "旺财";
       dog.age = 3;
       
       dog.shoot();
    }
}

首先要理解一个概念,类其实就是一个模板,首先在Application中入口是main方法,并且定义的了实例dog 的名字 “旺财”和年龄 <3>,然后在Pet类中定义了属性name和age,一个一个方法shoot,这就是一个所谓模板,可以称之为“方法区”,当我们去实例化dog的时候,首先会在"栈"中去执行main方法,此时会在"栈"中出现一个dog的引用变量,这个引用变量指向了,new Pet(),而这个实例就被存在了"堆"中,在"堆"中具体的构建出了实际的name和age,以及使用了其的shoot方法,当然在方法区也可以有static  静态方法,静态方法并不需要"栈"中的引用变量指向,也就是可以直接使用,可以用 类名.  使用,也可以实例化对象使用,看下图

posted @ 2022-09-19 22:19  Takiyo  阅读(52)  评论(0)    收藏  举报