Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java类实例化为2d数组_Java - Fatal编程技术网

java类实例化为2d数组

java类实例化为2d数组,java,Java,我在oracle trails的卡片示例中遇到了这一行: public Cards[][] cards =new Cards[int suits][int ranks]; 尽管存在以下偏差,但未给出任何解释: Cards cards=new Cards(int suits,int ranks); 这对我来说是一个新概念。有人请解释2D数组或给我链接到页面,解释这样一个实例 2D数组实际上应该是一个数组数组,它接受相同类型的元素赋值(1D数组) 在第一行中,您创建了一个二维数组,其中包含一个

我在oracle trails的卡片示例中遇到了这一行:

public Cards[][] cards =new Cards[int suits][int ranks];
尽管存在以下偏差,但未给出任何解释:

Cards cards=new Cards(int suits,int ranks);
这对我来说是一个新概念。有人请解释2D数组或给我链接到页面,解释这样一个实例

2D数组实际上应该是一个数组数组,它接受相同类型的元素赋值(1D数组)


在第一行中,您创建了一个二维数组,其中包含一个Cards类的未初始化的实例

每个维度的大小由您在大括号中输入的数字定义(不知道为什么需要
int
,它是否编译?)

您需要通过
卡片[i][j]=新卡片(套装、等级)初始化每个单元格以便能够访问该单元中的卡。(其中
i
j
位于数组边界中)

第二行是创建类
卡的单个实例。您传递的
suits
ranks
参数是由于类
卡的构造函数定义而产生的,而不是2d数组的定义(其中大括号中的值定义数组的每个维度的大小)

语句

public Cards[][] cards = new Cards[int suits][int ranks];
Cards c = new Cards(int suits,int ranks);
不实例化任何类型为
的新对象。但是,它定义了一个新的二维数组,用于在中存储
卡类型的对象。二维数组可以看作是一个棋盘。在这个棋盘的每个区域(它的大小是
套装
x
等级
),都可以放置
类型的对象

另一方面,声明

public Cards[][] cards = new Cards[int suits][int ranks];
Cards c = new Cards(int suits,int ranks);
将实例化一个类型为
Cards
的新对象(至少如果
int-suits
int-ranks
将替换为正确的值)。创建此对象后,它可以存储在我们定义的2D数组中:

cards[0][0] = c;
该语句将把我们的
c
类型的
Cards
对象放置在棋盘的左上方区域

总而言之,2D数组基本上是一个数据容器(如
列表
),可以存储给定类型的对象。

您是否尝试过用谷歌搜索“2D数组”或类似的东西?我无法想象在什么地方没有完全清楚的例子