java类实例化为2d数组
我在oracle trails的卡片示例中遇到了这一行: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数组) 在第一行中,您创建了一个二维数组,其中包含一个
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数组”或类似的东西?我无法想象在什么地方没有完全清楚的例子