Привет! Меня зовут Алексей‚ и я хочу поделиться с вами своим личным опытом написания программы на Java‚ используя интерфейсы‚ для обработки матриц. Я создал класс Matrix с модификатором доступа public и реализовал следующий функционал⁚
java
public class Matrix {
private int[][] matrix;
public Matrix(int[][] matrix) {
this.matrix matrix;
}
public Matrix sum(Matrix otherMatrix) {
int[][] result new int[matrix.length][matrix[0].length];
for (int i 0; i < matrix.length; i ) {
for (int j 0; j < matrix[0].length; j ) {
result[i][j] matrix[i][j] otherMatrix.matrix[i][j];
}
}
return new Matrix(result);
}
public Matrix subtract(Matrix otherMatrix) {
int[][] result new int[matrix.length][matrix[0].length];
for (int i 0; i < matrix.length; i ) {
for (int j 0; j < matrix[0].length; j ) {
result[i][j] matrix[i][j] ⎯ otherMatrix.matrix[i][j];
}
}
return new Matrix(result);
}
public Matrix multiply(Matrix otherMatrix) {
int[][] result new int[matrix.length][otherMatrix.matrix[0].length];
for (int i 0; i < matrix.length; i ) {
for (int j 0; j < otherMatrix.matrix[0].length; j ) {
for (int k 0; k < matrix[0].length; k ) {
result[i][j] matrix[i][k] * otherMatrix.matrix[k][j];
}
}
}
return new Matrix(result);
}
public void printMatrix {
for (int[] row ⁚ matrix) {
for (int num ⁚ row) {
System.out.print(num ″ ″);
}
System.out.println;
}
}
public void printColumn(int columnIndex) {
for (int i 0; i < matrix.length; i ) {
System.out.println(matrix[i][columnIndex]);
}
}
public void printRow(int rowIndex) {
for (int num ⁚ matrix[rowIndex]) {
System.out.print(num ″ ″);
}
System.out.println;
}
public void printMainDiagonal {
for (int i 0; i < matrix.length; i ) {
System.out.println(matrix[i][i]);
}
}
public void printSideDiagonal {
for (int i matrix.length ⎯ 1; i > 0; i—) {
System.out.println(matrix[i][matrix.length ⎯ 1 ⏤ i]);
}
}
}
Для начала я создал класс Matrix с модификатором доступа public. Класс принимает двумерный массив int в качестве аргумента конструктора‚ который задает начальное значение матрицы.
Затем я реализовал методы для обработки матрицы. Метод `sum` складывает текущую матрицу с переданной матрицей и возвращает новую матрицу с результатом. Метод `subtract` вычитает из текущей матрицы переданную матрицу и возвращает новую матрицу с результатом. Метод `multiply` перемножает текущую матрицу на переданную матрицу и возвращает новую матрицу с результатом.
Далее я добавил методы для печати матрицы⁚ `printMatrix`‚ `printColumn`‚ `printRow`‚ `printMainDiagonal` и `printSideDiagonal`. Метод `printMatrix` выводит всю матрицу на экран. Метод `printColumn` выводит определенный столбец матрицы на экран. Метод `printRow` выводит определенную строку матрицы на экран. Метод `printMainDiagonal` выводит главную диагональ матрицы на экран. Метод `printSideDiagonal` выводит побочную диагональ матрицы на экран.
Все поля класса Matrix имеют модификатор доступа private‚ что означает‚ что они доступны только внутри класса.
Теперь‚ используя эту программу‚ вы можете легко выполнять различные операции над матрицами и выводить нужные элементы на экран. Надеюсь‚ мой опыт будет полезен для вас!