java基础:浅聊实例化和初始化

在Python中,实例化对象会涉及__new__和__init__两个系统方法。而在Java中,虽然源代码可能未显示,但编译后的class文件会有对应的init方法,每个构造函数对应一个init。实例化是创建对象并分配内存空间,而初始化则是给对象的成员变量赋值。如果没有显式赋值,变量会自动初始化为默认值。
摘要由CSDN通过智能技术生成

其实如果了解python的化,其在生成一个实例对象的时候会调用两个系统方法__new__ 和__init__。

这个可以通过看生成的class文件看到,比如创建一个test.java,然后通过jclasslib这个软件查看class文件,当然ide也可以安装这个软件的插件。

暂时先不要理解class文件种的代码时什么意思,有时间就聊一下,而是需要关注的是init方法。

public class test {
    int a;
    public test() {

    }
    public void setA(int a) {
        this.a = a;
    }

    public test(int a) {
        this.a = a;
    }

    public  void testNew1(){
     test t=new test();
     t.setA(1);
    }

    public  void testNew2(){
        test t=new test(1);

    }

}

在这里插入图片描述

这个init方法,原代码java文件中没有写,但是在class文件中就有这个方法,而且神奇的是有几个构造方法就有几个init方法。

然后看不同的方法:

  • 调用无参的构造方法

     public  void testNew1(){
         test t=new test();
         t.setA(1);
        }
    

    然后看调用 的init方法的class文件:

在这里插入图片描述

在这里插入图片描述

这个其实如果看无参的构造方法似乎调用init方法没有什么意义,但是如果看一下有参数的构造方法调用就明白了。

  • 调用有参的构造方法

       public  void testNew2(){
            test t=new test(1);
        }
    

在这里插入图片描述

在这里插入图片描述

现在简单的说一下实例化和初始化的意义:

  • 实例化:创建一个对象的过程称为实例化。在Java中,使用new关键字创建一个对象。通过new创建一个对象,就是实例化一个对象,也就是开辟了一个空间。
  • 初始化:为对象的成员变量赋初值的过程。在Java中,对象的成员变量需要初始化为某个值,否则它们会自动初始化为默认值。可以在定义时或者在构造函数或初始化块中为成员变量指定初始值。

用一句话笼统来说就是:实例化是创造了对象,开辟了空间,初始化是为这个对象的属性进行赋值,如果没有定义赋值就会自动初始化为默认值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值