前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 基础(三) 对象数组

Java 基础(三) 对象数组

作者头像
Rikka
发布2022-01-19 17:59:16
2420
发布2022-01-19 17:59:16
举报
文章被收录于专栏:rikkarikka

对象数组与基础类型的数组如int []是不同的。对象数组的每个元素都是对象的管理者,而非对象的本身。

代码语言:javascript
复制
String[] a = new String[10];
System.out.println(a[0]);//显示为null
System.outprintfln(a[0].length());//抛出异常

当通过创建了一个String类型的数组时,这个数组的每一个“格子”里都是String类型的管理者。此时该数组每一个元素管理的都是空的,即null

因此,需要给它每一个元素创建对象,如:

代码语言:javascript
复制
for(int i = 0; i < a.length; i++){
  a[i] = "" + i;
}

对象数组的 for-each 循环

代码语言:javascript
复制
class MyClass {
    private int value;

    public void set(int val) {
        value = val;
    }

    public int  get() {
        return value;
    }
    public static void main(String[] arg){
        MyClass []a = new MyClass[10];
        for(int i=0;i<10;i++){
            a[i] = new MyClass();
            a[i].set(1);//赋值为1
        }
        for(MyClass i: a){
            i.set(0);//赋值为0
        }
        for(MyClass i: a){
            System.out.println(i.value);
        }
    }
}

输出结果为:

代码语言:javascript
复制
0
0
0
0
0
0
0
0
0
0

这其中发生的事情是for-each循环中,变量i与a中的元素管理同一个对象,所以调用i.set(0)后,遍历a数组得到的结果也是0。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对象数组的 for-each 循环
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档