数组也是对象

要判断数组是不是对象,那么首先明确一下什么是对象,也就是对象的定义。

宏观方面来看,对象是根据某个类型创建出来的一个实例,表示某类事物中一个具体的个体。对象具有一些属性,并且具有一些特定的方法。

微观方面来看,对象就是内存中的一个内存块,在这个内存块中封装了一些数据,也就是类中定义的一些属性,方法,所以,对象是用来封装数据的。

以下以一个Person对象在内存中的表示:

class Person{

  private String name;

  private int age;

  

  Person(){}

  public Person(String name,int age){

    this.name=name;

    this.age=age;

}

  

public int getAge() {
return age;
}

public void setId(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

public class test{

  public static void main(String[] args){

    Person p = new Person(“liming”,23);

}

}

  

p这个创建出来的对象属性是存放在堆里面的,其中的name属性是一个引用类型,引用了字符串常量池中"liming"所在的地址值,它指向了一个真实存在的字符串对象。

那么在java中,数组满足以上条件吗?

在较高层面来讲,数组不是某类事物中一个具体的个体,而是多个个体的集合。那么它应该不是一个对象。

在计算机的角度来说,数组也是一个内存块,也封装了一些数据,这样的话也可以称之为对象。

以下是一个数组在内存中的表示:

  

这样的话, 数组既可以是对象,也可以不是对象。

至于数组到底是不是对象,可以通过代码来验证:

在数组a上,可以访问它的属性,也可以调用一些方法。这基本可以认定:java中的数组也是对象,它具有java中其他对象的一些特点:封装了一些数据,可以访问属性,也可以调用方法。

所以,数组是对象!

posted @ 2021-08-16 11:02  秦汉0523  阅读(489)  评论(0)    收藏  举报