Java 如何为多维数组创建getter方法和setter方法?
首先,对不起我的英语,我是法国人 以下是我试图用数学符号来解决的问题: 我有一对像这样的坐标:Java 如何为多维数组创建getter方法和setter方法?,java,arrays,methods,get,set,Java,Arrays,Methods,Get,Set,首先,对不起我的英语,我是法国人 以下是我试图用数学符号来解决的问题: 我有一对像这样的坐标:(x,y) An={(Xn;Yn)} array[An][(Xn;Yn)]={{X1;Y1}{X2;Y2}…{Xz;Yz} 在我的程序中,我需要为多维数组创建一个getter和setter 这是我的代码: //Infos for animations of objects //Sorting Random random1 = new Random(); int obsc
(x,y)
An={(Xn;Yn)}
array[An][(Xn;Yn)]={{X1;Y1}{X2;Y2}…{Xz;Yz}代码>
在我的程序中,我需要为多维数组创建一个getter和setter
这是我的代码:
//Infos for animations of objects
//Sorting
Random random1 = new Random();
int obscMin=0, obscMax=4; //I sort them to know how many obstacles will have to be created. obsc is the obstacle
int nbreObsc = obscMin + random1.nextInt(obscMax - obscMin); //nbreObsc is the number of obstacles
//End of sorting
/*Here's the model of a table:
A couple: An={(Xn;Yn)}
Tableau1[An][(Xn;Yn)]={{X1;Y1}{X2;Y2}...{Xz;Yz}};*/
float posObsc [] []=new float [nbreObsc] [2]; //New table, which will contain the positions of the obstacles
//Obstacle position getter and setter
public float[][] getPosObsc(){//getters
return posObsc;
}
public void setPosObsc(float[][] posObsc){//setters
this.posObsc=posObsc;
}
//End of obstacle position getter and setter
protected boolean detruireObsc=false; //"detruireObsc" means "destroyObstacle"
//Algorithm that defines the movement of obstacles
protected void obscDeplacemt(){
for(int i=1;i<=nbreObsc;i++){
//Sorting to determine the Xs
float ordMin=0,ordMax=width;
float ordObsc = ordMin + (float)Math.random() * (ordMax - ordMin); //ordObsc means obstacleXPosition
setPosObsc( posObsc [i][0]);
//End of sorting
}
}
//End of obstacle movement algorithm
//对象动画信息
//分类
Random random1=新的Random();
int obscMin=0,obscMax=4//我对他们进行分类,以了解需要制造多少障碍。obsc是障碍
int nbreObsc=obscMin+random1.nextInt(obscMax-obscMin)//nbreObsc是障碍物的数量
//分拣结束
/*以下是表格的模型:
一对:An={(Xn;Yn)}
表1[An][(Xn;Yn)]={{X1;Y1}{X2;Y2}…{Xz;Yz}*/
浮动posObsc[][]=新浮动[nbreObsc][2]//新表,其中将包含障碍物的位置
//障碍位置接球手和接球手
公共浮点[][]getPosObsc(){//getters
返回posObsc;
}
public void setPosObsc(float[][]posObsc){//setters
this.posObsc=posObsc;
}
//障碍物末端位置接球手和接球手
受保护的布尔detruireObsc=false//“detruireObsc”是指“Destruireobsc”
//定义障碍物移动的算法
受保护的无效obscDeplacemt(){
对于(int i=1;i代码行:
setPosObsc( posObsc [i][0]);
正在使用数组数组中的单个float
元素调用setPosObsc()
方法。但是该方法使用数组数组
要使代码编译,您可以编写:
setPosObsc(posObsc);
虽然这可能不是您想要的!如果您试图编写一个方法,在特定点将浮点放入数组中,您将需要以下内容:
void setObstacleAt(int obstacleIndex, int boundaryIndex, float shiftDistance) {
posObsc[obstacleIndex][boundaryIndex] = shiftDistance;
}
我在胡乱猜测你的数组包含什么
作为一个旁注,而不是编写注释来解释方法名称,您可以考虑使用没有缩写的更长或更精确的方法名称。在爪哇中,变量和方法名称的长度没有实际限制。
顺便说一句,在StackOverflow不是你的第一语言的时候,我有勇气用英语写它,做得很好。甚至在Runemoro编辑之前,我都能理解你的问题。你的getter和setter方法很好。错误是因为在obscDeplacemt()的最后一行代码中,你调用了setPosObsc(posObscp[I][0]).posObscp[i][0]将为您提供一个浮点值,而您的setter方法需要参数中的浮点值数组才能正常工作。祝您好运!看起来您要做的是:
posObsc[i][0] = ordObsc;
如果您在同一个类中,则无需使用setter
如果希望能够通过索引在外部设置元素值(而不是覆盖整个数组),有两种方法:
1) (不推荐)
由于在getter中公开了整个数组,因此理论上可以调用
getPostObsc()[i][0] = ordObsc;
2) (推荐)
将您的getter和setter更改为
public float getPosObsc(int x, int y){
return posObsc[x][y];
}
public void setPosObsc(int x, int y, float val){
this.posObsc[x][y] = val;
}
现在可以使用setter和索引更新元素:
setPostObsc(i, 0, ordObsc);
您介意我将评论翻译成英语吗?请提供可编译的代码。@Runemoro//Absolumt pas c'Est avec grd plaisir!Traduit Traduit et Traduit encore:p@Runemoro//我可以为你开脱了!@Pif-Paf-Pouf:Je-sais,et'ca-que-j'ai事实:PBig thk!这正是我需要的答案!这是我需要的答案!@Pif_Paf_Pouf:Pour rendre le program plus faile lire,Tu peux faireCtrl+Shift+F
en eclipse Pour metre tous les espaces aux bons endroits et tout alinger.@Runemoro//Sympa je savais pas.谢谢这正是我需要的答案!谢谢i:)