论数组也是对象的一种

从数组的声明来看

type[] arr_name//方式一(推荐使用这种方式)
type arr_name[]//方式二

数据总共有两种,基本数据类型和引用数据类型,从数组的声明方式看,只能是引用数据类型,而引用数据类型只有对象

从数组的初始化来看

public class Test {
    public static void main(String[] args) {
        //数组的定义和初始化
        int[] arr1=null;//
        arr1=new int[5];//数组元素相当于对象的属性,遵守对象属性默认初始化
        //动态初始化,根据索引直接赋值
        System.out.println(arr1[0]);
        //静态初始化,注意:静态初始化需在声明后直接初始化
        int[] arr2={1,2,3};
        for (int i=0;i<arr1.length;i++){
            arr1[i]=i*2+1;
        }
        //数组的遍历
        for(int i=0;i<arr1.length;i++){
            System.out.println(arr1[i]);
        }
    }
}

数组初始化有三种,静态初始化,动态初始化和默认初始化

在默认初始化中,对象的的默认初始化是null,而数组的默认初始化也是null

而数组里面的元素,根据声明的type类型决定,数组里面的元素的默认初始化也是依据于对象属性默认初始化进行的

从数组在JVM存放的位置看

对象在JVM存放的位置是堆中,而数组所存放的位置也是堆里面

从数组可调用的方法看

package ShuZu;

public class Test01 {
    public static void main(String[] args) {
        //静态初始化需在声明后直接初始化
        Man[] mans={new Man(123,"zyp"),
                new Man(1234,"zx"),
                new Man(1234,"zxd"),
                new Man(1234,"zxs"),
                new Man(1234,"zxx")
        };
        for(int i=0;i< mans.length;i++){
            Man man=mans[i];
            System.out.println(mans[i].getName());
        }
        //增强for循环
        for(Man m:mans){
            System.out.println(m);//使用的toString方法不会加上去,是打印时加上去的
    /*打出来是mans数组中每一个元素的地址,
        想要打印出对象所具有的含义,需要重写toString方法*/
        }
    }
}
class Man extends Object{
    private int id;
    private String name;
    public Man(){}//无参构造器
    public Man(int id, String name) {//构造器来传参
        this.id = id;
        this.name = name;
    }
    public String toString(){
        return "id"+id+",name"+this.name;
    }
    public int getId() {
        return id;
    }

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

    public String getName() {//为了让外界获取name属性
        return name;
    }

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

当type是一个组织的类时,意味着数组里面的元素可以实例化为对象

而在增强for循环这段代码时,想要打出对象中原本的意义,用到了toString方法的重写,而toString方法是Object类里面,所以Man数组是Object子类,所以数组是对象

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyp20221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值