Hi, Please find my code: import java.util.Random; public class ProcessArray { private int rows; //The attribute for number of rows in matrix private int columns; //The attribute for number of columns in matrix private int[][] firstArray; //The attribute for the first array private int[][] secondArray; //The attribute for the second array public int[][] getFirstArray() { return firstArray;} public int[][] getSecondArray() { return secondArray;} public ProcessArray(int rows, int columns){ //Constructor of object ProcessArray this.rows = rows; this.columns = columns; int[][] array = new int[rows][columns]; initializeArray(array); randomlyFillArray(); computeArrayValues(); printArray(secondArray); } public void initializeArray(int[][] array){ //Initializes first and second arrays and sets each value to 0 firstArray = new int[rows][columns]; secondArray = new int[rows][columns]; } public void randomlyFillArray(){ //Fills first array with random numbers for(int i = 0; i < firstArray.length;i++){ for(int j = 0; j < firstArray[0].length;j++){ Random r = new Random(); int num = r.nextInt(16); firstArray[i][j] = num; } } } public void computeArrayValues(){ int col = firstArray[0].length; int row = firstArray.length; for(int i = 0; i < row; i++){ for(int j = 0; j< col; j++){ secondArray[i][j] = 0; if((i - 1) >=0){ secondArray[i][j] += firstArray[i-1][j]; if((j+1) < col) secondArray[i][j] += firstArray[i-1][j+1]; if(j > 0) secondArray[i][j] += firstArray[i-1][j-1]; } if((j+1) < col) secondArray[i][j] += firstArray[i][j+1]; if(j > 0) secondArray[i][j] += firstArray[i][j-1]; if((i+1) < row){ secondArray[i][j] += firstArray[i+1][j]; if((j+1) < col) secondArray[i][j] += firstArray[i+1][j+1]; if(j > 0) secondArray[i][j] += firstArray[i+1][j-1]; } } } } public void printArray(int[][] Array){ System.out.println(\"\ Initial Array Filled With Random Numbers: \ \"); for(int a = 0; a < firstArray.length; a++){ for(int b = 0; b < firstArray[0].length; b++){ if(b == 0) System.out.printf(\"%d \", firstArray[a][b]); else System.out.printf(\"%d \", firstArray[a][b]); }System.out.println(); }System.out.println(); System.out.println(\"Computed Array: \ \"); for(int a = 0; a < secondArray.length; a++){ for(int b = 0; b < secondArray[0].length; b++){ if(b == 0) System.out.printf(\"%d \", secondArray[a][b]); else System.out.printf(\"%d \", secondArray[a][b]); } System.out.println(); }System.out.println(); } public static void main(String[] args) { ProcessArray pr = new ProcessArray(3, 4); } } /* Sample Output: Initial Array Filled With Random Numbers: 7 3 6 12 10 2 11 10 12 14 1 7 Computed Array: 15 36 38 27 38 64 55 37 26 36 44 22 */ Solution Hi, Please find my code: import java.util.Random; public class ProcessArray { private int rows; //The attribute for number of rows in matrix private int columns; //The attribute for number of columns in matrix private int[][] firstArray; //The attribute for the first array private int[][] secondArray; //The attribute for the second arr.