9.1. 创建对象

9.1.1. 创建对象

创建对象包括两个步骤:声明和实例化。

  1. 声明

    声明对象与声明普通变量没有区别,语法格式如下:

    type objectName;
    

    其中type是引用类型,即类、接口和数组。示例代码如下:

    String name;
    

    该语句声明了字符串类型对象name。可以声明并不为对象分配内存空间,而只是分配一个引用。

  2. 实例化

实例化过程分为两个阶段:为对象分配内存空间和初始化对象,首先使用new运算符为对象分配内存空间,然后再调用构造方法初始化对象。示例代码如下:

String name;
name = new String("Hello World");

代码中String(“Hello World”)表达式就是调用String的构造方法。

对象实例化

image0

9.1.2. 空对象

一个引用变量没有通过new分配内存空间,这个对象就是空对象,Java使用关键字null表示空对象。示例代码如下:

String name = null;
name = "Hello World";

系统会抛出异常。这是因为调用length()方法时,name是空对象。程序员应 该避免调用空对象的成员变量和方法,代码如下:

package com.company06;

public class Main {
    public static void main(String[] args) {
        String name = null;
        //name = "Hello world";
        System.out.println(name);
        if (name != null) {
            int len = name.length();
            System.out.println(len);
        }
    }
}

提示 产生空对象有两种可能性:第一是程序员自己忘记了实例化,第二是空对象是别人传递过来的。程序员必须防止第一种情况的发生,应该仔细检查自己的代码,为自己创建的所有对象进行实例化并初始化。

第二种情况需要通过判断对象非null进行避免。