首页 > Java > java教程 > Java 的数组赋值语法在声明内部和外部有何不同?

Java 的数组赋值语法在声明内部和外部有何不同?

Barbara Streisand
发布: 2024-12-30 03:10:13
原创
215 人浏览过

How Does Java's Array Assignment Syntax Differ Inside and Outside of Declarations?

声明之外的数组赋值语法

Java 的数组初始化语法根据是在声明中使用还是在赋值中使用而有所不同。

使用数组进行初始化文字

声明数组时,可以使用数组文字来初始化其元素:

AClass[] array = {object1, object2};
登录后复制

使用 new 运算符初始化

在声明之外,可以使用 new 运算符初始化数组,后跟元素计数和后续赋值:

AClass[] array = new AClass[2];
array[0] = object1;
array[1] = object2;
登录后复制

语法限制:将数组文字分配给未声明的数组

但是,尝试将数组文字分配给未声明的数组变量是被禁止的:

AClass[] array;
...
array = {object1, object2}; // Blocked by Java
登录后复制

Java 施加此限制的原因可能不会立即显而易见。

解决方法:将 new 运算符与数组文字结合使用

作为解决方法,可以使用以下语法使用:

AClass[] array;
...
array = new AClass[]{object1, object2};
登录后复制

此方法将数组创建和初始化合并到一条语句中,同时遵守 Java 的语法规则。

示例

例如,考虑以下代码snippet:

public void selectedPointsToMove(cpVect coord) {

    if (tab == null) {
        if (arePointsClose(coord, point1, 10)) {
            cpVect[] tempTab = {point1};
            tab = tempTab;
        } else if (arePointsClose(point2, coord, 10)) {
            cpVect[] tempTab = {point2};
            tab = tempTab;
        } else {
            cpVect[] tempTab = {point1,point2};
            tab = tempTab;
        }
    }
}
登录后复制

如果没有解决方法,代码将需要额外的语句来初始化 tempTab,然后再分配它到选项卡。

以上是Java 的数组赋值语法在声明内部和外部有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板