1 public class Test { 2 public static void main(String[] args) { 3 Human aPerson = new Human(122); 4 } 5 6 } 7 class Human{ 8 /*constructor*/ 9 public Human(int h){ 10 this.height = h; 11 } 12 /*accessor */ 13 public int GetHeight(){ 14 return this.height; 15 } 16 /*mutator */ 17 public void GrowHeight(int h){ 18 this.height+= h; 19 } 20 private int height; 21 }
aPerson 为对象引用reference存在内存的栈中。
But!!!
在 Java中,所有的(普通)对象都储存在堆上。因此,new关键字的完整含义是,在堆上创建对象。
基本类型(primitive type)的对象,比如int, double,保存在栈上。当我们声明基本类型时,不需要new。一旦声明,Java将在栈上直接存储基本类型的数据。所以,基本类型的变量名表示的是数据本身,不是引用。
引用赋值:
当我们将一个引用赋值给另一个引用时,我们实际上复制的是对象的地址。两个引用将指向同一对象。比如dummyPerson=aPerson;,将导致:
时间: 2024-12-16 19:20:02