与计算机的情话--Java-(14)

77 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

1、前言

梦想也许今天无法实现,明天也不行,但是只要今天的自己比昨天的自己足够努力,就会距离梦想进一步。

时间过得是真快,转眼今天又周五了,又到了休息的日子,光阴一去再难见。

2、正文

对象在内存中的运行机制:学完这些,对对象具体是怎么执行的会认识的更加透彻,对以后理解其他面向对象知识也至关重要。

对象是放在堆内存中,所有new出来的对象都在堆内存中

Car c = new Car();c变量中存储的是对象在堆内存中的地址,而不是成员变量的数据。

成员变量的数据放在对象中,然后再存于堆内存中。

两个变量指向同一个对象:

image.png

image.png

垃圾回收:当堆内存中的对象,没有被任何变量引量(指向)时,就会被判定为内存中的“垃圾”。Java存在自动垃圾回收器,会定期进行处理,不用我们自己清理。

构造器

学习构造器的目的:真正知道对象具体是通过调用什么代码得到的;能够掌握为对象赋值的其他简便写法;为以后学习面向对象编程的其他内容做支撑。

构造器的作用:定义在类中的,可以用于初始化一个类的对象,并返回对象的地址。

构造器的格式:

修饰符 类名(形参列表){
...
}
public class Car{
    ...
    //无参数构造器
    public Car(){
    }
    //有参数构造器
    public Car(String n, double p){
    ...
    }
}

调用构造器得到对象的格式:类 变量名称 = new 构造器;

构造器的分类和作用:无参数构造器(默认存在的):初始化对象时,成员变量的数据均采用默认值。

有参数构造器:在初始化对象的时候,同时可以接受参数为对象进行赋值。

构造器的注意事项:

任何类定义出来,默认就自带了无参数构造器,写不写都有。

一旦定义了有参数构造器,那么无参数构造器就没有了,如果还想用无参数构造器,此时就需要自己手写一个无参数构造器了。

今天是我参加8月更文挑战的第14天,敬请期待下文。