New关键字(实例化对象)

New关键字

Point originOne = new Point(23, 94);
Rectangle rectOne = new Rectangle(originOne, 100, 200);
Rectangle rectTwo = new Rectangle(50, 100);

为Point的对象创建了一个实例,在内存里开辟了两个空间:一块空间在堆,存放new Point()这个对象;另一块空间在栈,存放originOne,originOne值即new Point(23, 94)这个对象的内存地址。

Object o;

声明了一个引用,存放在栈中,类型是Object,值为null,没有指向任何一个对象。

创建一个Java对象需要三步:声明引用变量、实例化、初始化对象实例。
(1) 声明一个变量来指向一个对象,即引用
如果你只是声明一个像originOne这样的引用变量,其价值将待定,直到有一个对象真正被创造和分配给它。只是简单地声明一个引用变量而并没有创建一个对象。对于这样,你需要使用new运算符。在你的代码中使用它之前,你必须指定一个对象给originone。否则,你会得到一个编译器错误-----空指针异常。
(2) 实例化一个类对象
new运算符实例化一个类对象,通过给这个对象分配内存并返回一个指向该内存的引用。new运算符也调用了对象的构造函数。“实例化一个类的对象”的意思就是“创建对象”。创建对象时,你正在创造一个类的“实例”,因而“实例化”一个类的对象。new运算符需要一个单一的,后缀参数,需要调用构造函数。构造函数的名称提供了需要实例化类的名称。
(3) 初始化一个类对象
调用构造函数初始化对象

public class Point {

    public int x = 0;
    public int y = 0;

    /**
     * constructor
     * 
     * @param a
     * @param b
     */
    public Point(int a, int b) {
        x = a;
        y = b;
    }
}

总的来说,new关键字是通过虚拟机new指令实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值