Java多维数组作为对象传递

Java多维数组作为对象传递,java,oop,object,multidimensional-array,Java,Oop,Object,Multidimensional Array,这只是我正在做的一个OOP测试,你能帮助我理解如何通过传递对象来设置多维数组值的概念吗。请检查以下代码 public class agnts { private int rate[][] = new int [4][5]; public agnts(){ rate[0][1] = new pric(25); rate[1][1]=new pric(30); rate[2][1]= new pric(45); rate[3][1]=new pric(55); }

这只是我正在做的一个OOP测试,你能帮助我理解如何通过传递对象来设置多维数组值的概念吗。请检查以下代码

 public class agnts {



 private int rate[][] = new int [4][5];

 public agnts(){
 rate[0][1] = new pric(25);
 rate[1][1]=new pric(30);
 rate[2][1]= new pric(45);
 rate[3][1]=new pric(55);
 }    
 }
 class pric {
 //int pric [][]= new int [4][5];
 int pric;
public pric(int p){

    this.pric=p;
}
 public int getPric(){
    return pric;
}
}
 public static void main(String[] args) {        

  agnts tz=  new agnts();
  }
我得到一个类型为不兼容的错误:int-found:pric
我做错什么了吗?请告知。

您因此收到一个错误

private int rate[][] = new int [4][5];
// You declare a multi-dimensional integer array.

public agnts(){
  // you then attempt to assign objects to that array.
  rate[0][1] = new pric(25);
  rate[1][1]=new pric(30);
  rate[2][1]= new pric(45);
  rate[3][1]=new pric(55);
}    
您声明了整数矩阵,但正在使用pric类初始化它

更新1: 正如bmorris591在is评论中所建议的:

 public agnts(){
     rate[0][1] = new pric(25).getPric();
     rate[1][1]=new pric(30).getPric();
     rate[2][1]= new pric(45).getPric();
     rate[3][1]=new pric(55).getPric();
  }    
更新2: 如果要为all矩阵设置随机数:

for (int row = 0; row < rate.length; row ++ )
 for (int col = 0; col < col[row].length; ; col ++)
    rate[row][col] = (int)(Math.Random()*10+1); // this will generate number between 1 to 10
for(int row=0;row
rate
是一个整数数组数组:

private int rate[][] = new int [4][5];
因此,
rate[0][1]
是一个
int

因此,由于它是一个
int
,将其指定为
pric
的实例毫无意义:

rate[0][1] = new pric(25);
您可能希望将其初始化为int:

rate[0][1] = 25;
或者,您可能希望将rate设置为pric的数组:

private pric[][] rate = new pric[4][5];

注意,Java约定告诉类应该以大写字母开头。选择好的名称也会使代码更具可读性。什么是
pric
?什么是
agnts

您已经声明了
int

private int rate[][] = new int[4][5];
还有类
pric
,它包含一个
int

您试图将数组的成员设置为等于
new pric(X)
,这与

int i = new pric(X);

如果您看不出这有什么问题,那么可以开始并努力解决。

您正在这里调用pric的构造函数:
rate[0][1]=新pric(25)

构造函数返回一个pric类的对象,但您希望对其调用getPric():
rate[0][1]=新pric(25.getPric()

您有一个
int[][]
,您正在尝试将其元素设置为类
pric
。您需要执行
rate[X][Y]=newpric(Z).getPric()。更好的是,阅读。你能告诉我我需要做什么来修复它吗?任何例子都会非常感激