对象与对象变量

类是构造对象的模板或者蓝图,由类构造对象的过程可以称之为类的实例。

那么我们该如何构造对象并该如何理解呢?


第一步:我们创建一个自己的类——Person类,里面我们定义了Person这个类的一些属性和方法。

public class Person {

    // 属性
    public String name;
    public int age;

    // 无参构造器
    public Person() {
    }

    // 有参构造器(全参构造器)
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 方法
    public void say(){
        System.out.println("可以说话交流");
    }

    public void create(){
        System.out.println("能够创造发明");
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 第二步:我们将类构造成对象,即实例化的过程【重点】。

要想使用对象,首先必须构造出对象,并指定对象的初始状态,然后对对象应用方法。

在我们的Java语言中,需要使用构造器(构造函数)来构造新的实例。构造器(构造函数)是一种特殊的方法,这种方法用来初始化对象。

须知:构造器的名字需要与类名相一致。因此当我们需要构造一个Person类的对象时,需要在构造器1前面加上new操作符就可以构造出新对象

new Person(); // 实质上调用的时无参构造来初始化状态
new Person("Tom", 18); // 实质上调用的是有参构造(全参构造)来初始化状态

我们构造出来这个类的对象后,就可以调用这个类的所有属性和方法!

public class Test {
    public static void main(String[] args) {
        new Person().create();
        new Person("Tom", 18).say();
    }
}

/*
测试结果: 
    能够创造发明
    可以说话交流
 */

 但是我们发现,我们构造出来的对象,不论是无参构造,还或者是有参构造,每次这样都非常的麻烦,不够便捷。我们希望构造出来的对象可以做到多次使用,而不是使用一次构造一次,所以这个时候,我们就需要将我们所构造出来的对象,放到一个变量当中,那么对象变量就诞生了!

Person commonPerson = new Person();
Person Tom = new Person("Tom", 18);

 这样的话,我们就有了对象变量commonPerson和Tom这两个对象变量,这两个对象变量就会去引用新构造的这一对象Person,一个走的是无参构造这一方法,一个走的是有参构造这一方法。

public class Test {
    public static void main(String[] args) {
        Person commonPerson = new Person();
        Person Tom = new Person("Tom", 18);

        commonPerson.say();
        Tom.create();
    }
}
/*
测试结果:
    可以说话交流
    能够创造发明
 */

对象对象变量之间存在一个重要的区别,如果我们换一种方式来定义对象变量

Person commonPerson;
Person Tom;

进行测试:

这样定义的话,这时候的变量commonPerson和Tom实际上在这个时候是没有引用任何对象的,并且会报错显示未初始化,所以无法调用Person类的任何属性和方法,同样也再一次验证了构造器(构造函数)是用来初始化对象并构造新的实例,也与为什么构造器的名称要与类名一致相呼应。


总结:通过以上的测试以及理解,我们可以看到对象变量其实并没有实际包含一个对象,它仅仅只是去引用一个对象。在Java中,任何对象变量的值都是对存储在另一个地方的某一个对象的引用,所以我们也能够知道,new操作符的返回值也是一个引用。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值