Day 14

·2023년 6월 26일
0

Global_2023_2

목록 보기
13/56

1. 아래의 2차원 배열에 대하여 메모리를 그리시오.

int[][] arr = {
{11},
{22, 33},
{44, 55, 66}
};

2. enhenced for 문에 대하여 설명하시오.

  • for (int e : ar) 
    식의 each문으로 read(읽기)전용
    • 자바 5.0 버전 이후로 지원한다

3.아래를 프로그래밍 하시오.

🚩 실습문제 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();
      }

4. 아래 문제를 푸시오.

🚩 실습문제 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();}

1. 아래 문제를 푸시오.

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. 아래 문제를 푸시오.

[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();
}
}

2.has-a와 is-a의 차이는?

  • 상속은 is-a : 노트북은 컴퓨터이다
    • 삶은 여정이다 : 처럼 애매하면 has-a 이다 (is-a가 아닌것)

3. 다형성을 예습하시오.

  • 자바의 다형성은 하나의 이름으로
    다양한 형식의 객체를 참조할 수 있는것

    • 오버로딩

    • 오버라이딩

      • 부모 클래스에 선언된 메소드를
        자식 클래스에서 재정의하는 것

선배가 이거 안해도 먹고 살것 같으니까 다른일 하라는건 다 뻥이다🤯

  • 잘하건 못하건 그냥 선배 바짓가랑이 붙잡고 오래 버티고 해라🤕

Point

  • 배열

    • 선언하자마자 초기화 int[] ar = {1,2,3};
    • 기본 자료형 배열은 모든 요소 0으로 초기화
    • 인스턴스 배열은 모든 요소 null로 초기화
    • 메인 클래스인 public static void main(String[] args)에서
      String[] 부분은 프로그램을 실행시키자마자 파라미터를 넘길때 사용됨
    • 실무에서 3차원 이상은 사실상 안쓴다
      (for 안에 for 안에 for 썼으면 다시 생각하라)

    • for 바깥이 행 for 안쪽이 열

    • 아래 방식은 외워야 한다

  • 자바 버전은 1.5 1.8이 중요 (1.2, 1.6일때도 있음)
    (현업에선 버전부터 확인하자. 코드가 안먹힐수도 있다)

  • 주민번호, 여권번호등을 int로 하는것 : 추상화

  • 상속은 연관된 클래스에 공통적인 규약 정의

    • A<B<C 식으로 계속 상속 가능
    • UML : 부모 자식 클래스 관계
      (상위부모Man <- 하위자식Busunessman)
    • 자바는 다중상속 X(C++는 가능) : 내용물 구분이 어렵다
    • 사실 상속은 그다지 좋은게 아니다.
  • 코딩의 문법은 어려운것 외엔 이미 어느정도 정해져있다

0개의 댓글