Java中创建对象初始化过程的理解

时间:2021-07-10 19:43:16

以下面程序为例:

1.源码Cars.java通过编译生成Cars.class文件;

2.执行时分为两步:

第一步将Cars类的字节码加载到内存中,

第二步是new之后自动执行的。①将属性colorprice初始化内存堆,并附上初始值null0.0(声明,赋初值);②调用有两个参数的构造方法public Cars(String color,double price),把具体值"black"60000赋值给形式参数colorprice(即执行Cars("black",60000);)③在中创建一个变量car1,用来引用中对象的具体属性("black"60000),car1的值是一个16进制的数,表示一个虚地址;④重复①-③过程创建对象car2car2car1是不同的引用,指向不同的具体对象。也就是说,car1car2分别引用不同的具体内容。

 

public class Cars {

private String color;

private double price;

     public Cars(String color,double price){

this.color = color;

this.price = price;

}

public void setColor(String color) {

this.color = color;

}

public void setPrice(double price) {

this.price = price;

}

public static void main(String[] args) {

       Cars car 1= new Cars("black",60000);

          Cars car 2= new Cars(“red",50000);

}

}