Я учу конструкторов и понимаю их по большей части, но я не должен понимать это достаточно. Я также не понимаю this
полностью. Но этот код ниже должен использовать эти конструкторы:
конструктор по умолчанию, который будет использоваться для заполнения матрицы случайными числами
конструктор, который принимает объект File, который указывает на файл
содержащий матрицу,
конструктор, который принимает строку, которая содержит имя файла
конструктор, который принимает значение типа Matrix и создает его копию
конструктор, который принимает 2D-массив и копирует его значения
И еще, наряду со статическим методом умножения. Я должен использовать команды из main
. Но я не совсем понимаю, как использование String в качестве единственного параметра сделает конструктор, о котором ему сказано, а также другие, такие как конструктор по умолчанию, который заполняет массив случайными значениями типа double. Я думаю, что я должен использовать this
больше в моем коде, но я не совсем уверен.
В основном мне просто нужно иметь возможность установить матрицу, заполнить матрицу m1 случайными двойными числами, сделать это снова с матрицей m2, а затем использовать метод статического умножения, чтобы умножить их, а затем вывести полученную матрицу. Спасибо.
(Просто один на один, я использую матрицу 3 на 3, изначально я должен был установить размер матрицы в соответствии с размером, найденным в текстовом файле, но я также могу указать нужный размер, который Я извиняюсь за грязный код. Он запутался, пока я пытался разобраться с этим, и я боюсь изменить его дальше.)
public class Matrix {
double A[][] = new double[3][3]
// Matrix file name
public Matrix(String name) {
this(new File(name));
}
// Matrix random fill
public Matrix() {
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
this.A[i][j] = (min + Math.random() * (max - min));
}
// Matrix copy
public Matrix(double[][] A) {
private double[][] arrcopy = new double[3][3];
private double[][] array = new double[3][3];
array = A;
for(int i = 0; i < 3; ++i){
for(int j = 0; j < array[i].length; ++j) {
arrcopy[i][j] = array[i][j];
}
}
}
// Set array from text file
public Matrix(File a) {
File f = a;
Scanner inputStreamOne = null;
try{
inputStreamOne = new Scanner(f);
}
catch(FileNotFoundException e){
System.out.printf("Error\n");
}
double arrayOne[][] = new double[3][3];
while(inputStreamOne.hasNextInt()) {
for(int i = 0; i < 3; ++i){
for(int j = 0; j < arrayOne[i].length; ++j){
arrayOne[i][j] = inputStreamOne.nextInt();
}
}
inputStreamOne.close();
}
}
// Gets array in file from string name
public Matrix(String a) {
String inputOne = a;
Scanner inputStreamOne = null;
try{
inputStreamOne = new Scanner(new File(inputOne));
}
catch(FileNotFoundException e){
System.out.printf("Error\n");
}
while(inputStreamOne.hasNextInt()){
for(int i = 0; i < size; ++i){
for(int j = 0; j < arrayOne[i].length; ++j){
arrayOne[i][j] = inputStreamOne.nextInt();
}
}
inputStreamOne.close();
}
}
public static multiply
public static void main(String args[]) {
Matrix m = new Matrix("matrix1.txt");
Matrix m2 = new Matrix("matrix2.txt");
Matrix r = Matrix.multiply(m, m2);
r.output(...);
}
}