对Java中new关键字的理解

发布时间 2024-01-09 22:39:26作者: sixsix666

在编写Java程序中,最常用的就是new,那么new这个关键字到底做了什么(目前的理解,后续再补充)

在Java中,new关键字用于创建对象的实例。当使用new关键字时,它会在堆内存中为对象分配空间,并调用对象的构造方法来初始化对象的状态。相当于分配了一个内存地址,每new一个就有一个新地址,

当使用new关键字创建对象时,实际上发生了几个重要的步骤:

  1. 分配内存空间: new关键字会在堆内存中为对象分配足够的空间,以容纳该对象的所有成员变量。

  2. 调用构造方法: 在分配内存后,会调用对象的构造方法。构造方法负责初始化对象的状态,可以设置对象的属性或执行其他必要的操作。

  3. 返回对象引用: new关键字返回一个指向新创建对象的引用。该引用可以用于在程序中操作、访问和传递对象。

声明一个变量来指向一个对象,即引用

当通过类来声名一个对象的时候,这个变量要通过new来获取对象。

先从简单看,要声明一个变量,需要写:type name;

这将告诉编译器将使用name引用一个type类型的对象。用一个原始变量,这个声明也保留了适当的内存量的变量。

也可以在自己的类上声明一个引用变量。例如:Point  originone

        如果只是声明一个像originone这样的引用变量,其值将待定,直到有一个对象真正被创造和分配给它。只是简单地声明一个引用变量而并没有创建一个对象。对于这样,需要使用new运算符。在代码中使用它之前,必须指定一个对象给originone。否则,得到一个编译器错误-----空指针异常。

   

实例化一个类对象

        new运算符实例化一个类对象,通过给这个对象分配内存并返回一个指向该内存的引用。new运算符也调用了对象的构造函数。

        注意:“实例化一个类的对象”的意思就是“创建对象”。创建对象时,正在创造一个类的“实例”,因而“实例化”一个类的对象。

        new运算符需要一个单一的,后缀参数,需要调用构造函数。构造函数的名称提供了需要实例化类的名称。

        new运算符返回它所创建的对象的引用。此引用通常被分配给一个合适的类型的变量,如:Point  originone =new Point(23,94);

  

初始化一个类对象

像有很多构造方法的时候,那么形参的选则就极为重要,然后通过选择出来的构造方法声明对象