int[][] arr = {
{11},
{22, 33},
{44, 55, 66}
};
for (int e : ar)
식의 each문으로 read(읽기)전용🚩 실습문제 5
2차원 배열의 행과 열의 크기를 사용자에게 직접 입력받되, 1~10사이 숫자가 아니면
“반드시 1~10 사이의 정수를 입력해야 합니다.” 출력 후 다시 정수를 받게 하세요.
크기가 정해진 이차원 배열 안에는 영어 대문자가 랜덤으로 들어가게 한 뒤 출력하세요.
(char형은 숫자를 더해서 문자를 표현할 수 있고 65는 A를 나타냄, 알파벳은 총 26글자)
실행 화면
행 크기 : 5
열 크기 : 4
T P M B
U I H S
Q M B H
H B I X
G F X I
public static int getArr() {
Scanner sc = null;
int num =0;
while(true) {
sc = new Scanner(System.in);
num = sc.nextInt();
if(num < 1 || num >10 ) {
System.out.println("반드시 1~10 사이의 정수를 입력해야 합니다.");
continue;
}else {
break;
}
}
return num;
}
//변수 선언
int row,col;
int[][] arr;
System.out.print("행크기:");
row = getArr();
System.out.print("열크기:");
col = getArr();
arr = new int[row][col];
//알파벳 입력및 출력
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (int)(Math.random() * 26 + 65);
System.out.print((char)arr[i][j] + " ");
}
System.out.println();
}
🚩 실습문제 9
문제 ( 메서드명 : public void practice9( ) { } )
String 2차원 배열 6행 6열을 만들고 행의 맨 위와 제일 앞 열은 각 인덱스를 저장하세요.
그리고 사용자에게 행과 열을 입력 받아 해당 좌표의 값을 'X'로 변환해 2차원 배열을 출력하세요.
Scanner sc = new Scanner(System.in);
String[][] arr = new String[6][6];
System.out.print("행 인덱스 입력 : ");
int rowNum = sc.nextInt();
System.out.print("열 인덱스 입력 : ");
int colNum = sc.nextInt();
if (rowNum < 0 || rowNum > 4 || colNum < 0 || colNum > 4)
System.out.println("잘못 입력하셨습니다.");
arr[rowNum][colNum] = "X";
System.out.println(" 0 1 2 3 4");
for (int row = 0; row < arr.length - 1; row++) {
System.out.print(row + " ");
for (int col = 0; col < arr[col].length - 1; col++) {
if (arr[row][col] == arr[rowNum][colNum])
arr[row][col] = "X";
else
arr[row][col] = " ";
System.out.print(arr[row][col] + " ");
}
System.out.println();
}
sc.close();}
class TV{
private int size;
public TV(int size) { this.size = size; }
public int getSize() { return size; }
}
[1번] 다음 main() 메소드와 실행 결과를 참고하여
TV를 상속받은 ColorTV 클래스를 작성하라.
public static void main(String[] args) {
ColorTV myTV = new ColorTV(32, 1024);
myTV.printProperty();
}
32인치 1024컬러
class TV {
private int size;
public TV(int size) {
this.size = size;
}
public int getSize() {
return size;
}
}
class ColorTV extends TV {
private int color;
public ColorTV(int size, int color) {
super(size);
this.color = color;
}
public void printProperty() {
System.out.println(super.getSize() + "인치 " + this.color + "컬러");
}
}
[2번] 다음 main() 메소드와 실행 결과를 참고하여 ColorTV를 상속받는
IPTV 클래스를 작성하라.
public static void main(String[] args) {
IPTV iptv = new IPTV("192.1.1.2", 32, 2048); //"192.1.1.2" 주소에 32인치, 2048컬러
iptv.printProperty();
}
나의 IPTV는 192.1.1.2 주소의 32인치 2048컬러
class IPTV extends ColorTV {
private String ip;
public IPTV(String ip, int size, int color) {
super(size, color);
this.ip = ip;
}
public void printProperty() {
System.out.print("나의 IPTV는" + this.ip + " 주소의 ");
super.printProperty();
}
}
자바의 다형성은 하나의 이름으로
다양한 형식의 객체를 참조할 수 있는것
오버로딩
오버라이딩
배열
실무에서 3차원 이상은 사실상 안쓴다
(for 안에 for 안에 for 썼으면 다시 생각하라)
for 바깥이 행 for 안쪽이 열
아래 방식은 외워야 한다
자바 버전은 1.5 1.8이 중요 (1.2, 1.6일때도 있음)
(현업에선 버전부터 확인하자. 코드가 안먹힐수도 있다)
주민번호, 여권번호등을 int로 하는것 : 추상화
상속은 연관된 클래스에 공통적인 규약 정의
코딩의 문법은 어려운것 외엔 이미 어느정도 정해져있다