java 构造器和实例化

本文详细介绍了Java构造器的作用、类型和使用规则,包括无参构造器、带参构造器的重载,以及构造器内部的this调用。同时,阐述了对象实例化过程,包括非静态代码块的执行顺序以及子类对象实例化时如何调用父类构造器。此外,还讨论了构造器与默认构造器的关系,以及如何在创建带参构造器时处理空参构造器的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造器

构造器的的作用,初始化对象使用,给对象 赋值

构造器的名字和 当前类 相同, 不能有返回值,

public Student(){

}

带参数 构造器

public Student(Stringname,int age){
       
        this.name = name;
        
        this.age - age;

}

参数列表不同,有多个 构造器 可以重载。

//构造器可以重载
public Student(Stringname,int age){
       
        this.name = name;
        
        this.age - age;

}

public Student(Stringname,int age,inr score){
       
        this.name = name;
        
        this.age - age;

        this.score = score;

}

每一个类 如果一个构造器也不写, 默认提供一个 空参 构造器

在 new 对象的时候,不传入参数,默认使用 空参 构造器

一旦显示创造 构造器 ,默认构造器 不在提供,

如果创建带参构造器,就不能new 不带参数的 对象,一般 写构造器,都要把空参的也给写上。

通过 this 可以调用其他 构造器

this调用其他构造器,必须在本构造器的 第一行

非静态 代码块 { }

  每次调用任意构造器,代码块 都会执行,而且先执行 代码块 ,再执行构造器

每个构造器 里面 都有的 代码,放到构造器中。

class Student {

    String name;
    
    int age;

//   静态代码块  起到 初始化赋值的 作用

    {
    
    this.name = "Tom";

    this.age = 18;

    }



}

子类对象实例化过程

1.从结果上看:继承性

   子类继承父类以后,就获取了父类中声明的属性或方法。 创建子类的对象,在堆空间中,就会加载所父类中声明的属性。 2.从过程上看: 当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,...直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所的父类的结构,所以才可以看到内存中父类中的结构,子类对象才可以考虑进行调用。

对象 实例化 顺序

1.调用super()

2. 直接显示赋值语句 和 非静态代码块 依次执行(按照书写顺序)

3. 父类构造器

4.本类 直接显示赋值语句 和 非静态代码块 依次执行(按照书写顺序)

5.自己构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值