아래의 코드들은 해당 패키지에서 작성되었다.

package com.kh.practice.dimension;

import java.util.Scanner;

public class DimensionPractice {

}
	public void practice1() {
		
		// 3행 3열짜리 문자열 배열 선언 및 할당
		// 인덱스 0행 0열부터 2열 2행까지 차례대로 접근
		// (0, 0)형식으로 출력
		
		String [][] arr = new String[3][3];
		
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				System.out.printf("(%d, %d)", i, j);
			}
			System.out.println();
		}
	public void practice2() {
		
		// 4행 4열짜리 정수형 배열 선언 및 할당
		// 1) 1~16 값 차례대로 저장
		// 2) 저장된 값들 차례대로 출력
		
		
		int [][] arr = new int[4][4];
		int num = 1;

		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j]=num;
				if(num<10) {
					System.out.print(" "+num+" ");
				} else {
					System.out.print(num+" ");
				}
				
				num++;
			}
			System.out.println();
		}
		
	}
	public void practice3() {
		
		// 4행 4열 정수형 배열 선언 및 할당
		// 1) 16~1과 같이 값을 거꾸로 저장
		// 2) 저장된 값들을 차례대로 출력
		
		int [][] arr = new int[4][4];
		int num = 16;
		
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = num;
				if(num<10) {
					System.out.print(" "+num+" ");
				} else {
					System.out.print(num+" ");
				}
				num--;
			}
			System.out.println();
		}
	}
	public void practice4() {
		
		// 4행 4열 2차원 배열 생성
		// 0행 0열부터 2행 2열까지 1~10까지의 임의의 정수값 저장
		// 값과 행열의 합으로 출력
		
		int [][] arr = new int [4][4];
		
		int sum1 = 0;
		int sum2 = 0;
		
		for(int i=0; i<arr.length-1; i++) {
			for(int j=0; j<arr[i].length-1; j++) {
				arr[i][j] = (int)(Math.random()*10+1);
			}
		}
		
//		arr[0][3] = arr[0][0]+arr[0][1]+arr[0][2];
//		arr[1][3] = arr[1][0]+arr[1][1]+arr[1][2];
//		arr[2][3] = arr[2]
		 
		for(int i=0; i<arr.length-1; i++) {
			for(int j=0; j<arr.length-1; j++) {
				arr[i][3] += arr[i][j];
			}
			sum1 += arr[i][3];
		}
		
		
//		arr[3][0] = arr[0][0]+arr[1][0]+arr[2][0];
//		arr[3][1] = arr[0][1]+arr[1][1]+arr[2][1];
		
		for(int i=0; i<arr.length-1; i++) { // 0 1 2
			for(int j=0; j<arr[i].length-1; j++) {
				arr[3][j] += arr[i][j];
			}
//			sum2 += arr[3][j];  // 질문
		}
		
		
		// 수정 코드
		for(int i=0; i<arr.length-1; i++) {
				sum2 += arr[3][i];
		}
		
//		sum2 = arr[3][0]+arr[3][1]+arr[3][2] 
		
//		arr[3][3] = arr[0][3]+arr[0][3]+arr[2][3]+arr[0][3]+arr[1][3]+arr[]
		arr[3][3] = sum1 + sum2;
		
		
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				if(arr[i][j]<10) {
					System.out.print(" "+arr[i][j]+" ");
				} else {
					System.out.print(arr[i][j]+" ");	
				}
			}
			System.out.println();
		}
		
		System.out.println(sum1);
		System.out.println(sum2); // 값이 틀리게 나옴
	
	}

열들의 합을 모두 더하는 sum2가 제대로 출력되지 않아서 질문을 하였다.(빨간 밑줄) 그리고 수정된 코드가 파란밑줄의 코드이다. 별로 효율적인 코드라고는 생각되지 않는다.

	public void practice5() {
		
		// 2차원 배열의 행과 열의 크기를 사용자에게 입력 받기
		// 1~10 사이의 숫자 x -> "반드시 1~10 사이의 정수를 입력해야 합니다."
		// 출력 다시 정수 받기
		// 크기가 정해진 이차원 배열 안에 영어 대문자 랜덤하게 할당, 출력
		
		Scanner sc = new Scanner(System.in);
		
		int row = 0;
		int col = 0;
		
		do {
			System.out.print("행 크기 : ");
			row = sc.nextInt();
			if(row<1 || row>10) { // 10보단 큰 수가 들어올 때의 조건을 빼먹었다
				System.out.println("반드시 1~10 사이의 정수를 입력해야 합니다.");
			}
		} while(row<1 || row>10);
		
		
		do {
			System.out.print("열 크기 : ");
			col = sc.nextInt();
			if(col<1 || col>10) { // 10보다 큰 수가 들어올 때의 조건을 빼먹음
				System.out.println("반드시 1~10 사이의 정수를 입력해야 합니다.");
			}
		} while(col<1 || col>10);
		
		
		char [][] arr = new char [row][col];
		
		// A~Z : 65~90
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = (char)(Math.random()*26+65);
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
		
	}