好吧,我正在开始一个小型的面向对象的程序,但我仍然需要帮助来理解模型类。
我有5个类文件。UFile.java, 菜单.java, UInput.java, UImport.java 和 UMath.java
还有一个模型类。Matrix. java
每个类文件都有相当的解释力
UFile.java: 处理来自.csv的文件输入并写入.csv。
菜单.java 为用户提供了选择他们想要做什么的提示。
UInput.java 处理用户的输入并进行验证
UMath.java 处理任何与数学相关的算法
UImport.java 导入数组到程序中
我用自己的测试文件对每个文件进行了测试,它们都能正常工作。
大问题 我有的是如何将我的Matrix数组成功地存储到程序中,所有的东西都是动态的,所以没有硬写的代码,我需要能够用我的UFile.java导入它,然后用我的UMath.java对它进行乘法,同时还要对它进行验证,确保没有一个元素是空的或无效的。
如果这是一个愚蠢的问题,我很抱歉,但我已经搜索了很多,但无法找到一个明确的答案。
例如:如果我用我的menu.java文件导入一个矩阵,它就会是这样的。
Menu.java。
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int selection;
do{
System.out.println("Please select\n" +
"1 Import Matrix\n" +
"2 Multiply Matrix\n" +
"3: Exit\n");
selection = s.nextInt();
switch(selection)
{
case 1:
importMatrix();
break;
case 2:
multiplyMatrix();
break;
case 3:
System.out.println("Goodbye!");
break;
default:
System.out.println("Invalid Input");
}
} while(selection != 3);
}
然后是importMatrix静态类,这就导致了导入类。
private static void importMatrix(){
UImport.fileIn();
我开始在如何存储矩阵上遇到了麻烦,我已经能够将一个硬编码的数组存储为全局变量,但我不确定如何存储它,因为它应该是动态的。
这就是我现在所拥有的,但这是行不通的,因为我需要在整个程序中使用和编辑这个数组。
private static void fileIn() {
String file;
file = UInput.userIn("Please enter the file name");
int[][] matrixA = UFile.readFile(file);
我的类仍然需要完成。
public class Matrix{
private int [][] MatrixA
private int [][] MatrixB
public Matrix(){
}
public Matrix(int [][] MatrixA, int [][] MatrixB){
setMatrixA(inMatrixA);
setMatrixB(inMatrixB);
}
public Matrix(Matrix inMatrix){
MatrixA = inMatrix.getMatrixA();
MatrixB = inMatrix.getMatrixA();
}
public void setMatrixA(String inMatrixA){
if(validateMatrixA(inMatrixA))
{
MatrixA = inMatrixA;
}
else
{
throw new IllegalArgumentException("Invalid Matrix");
}
}
public void setMatrixB(int inMatrixB){
if(validateMatrixB(inMatrixB))
{
MatrixB = inMatrixB;
}
else
{
throw new IllegalArgumentException("Invalid Matrix");
}
}
//ACCESSORS
public int [][] MatrixA(){
return MatrixA;
}
public int [][] getMatrixB(){
return MatrixB;
}
public boolean equals(Object inObj){
boolean same = false;
if(inObj instanceof Matrix)
{
Matrix inMatrix = (Matrix)inObj;
same = MatrixA.equals(inMatrix.getMatrixA()) &&
MatrixB.equals(inMatrix.getMatrixB());
}
return same;
}
public Matrix clone()
{
return new Matrix(this);
}
public String toString()
{
return ();
}
public String toFileString()
{
}
}
如果我漏掉了什么重要的东西,请告诉我,我是个初学者,所以我不确定。