일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- html/css
- 개발일기
- rnn
- JSP/Servlet
- 중학수학
- 컴퓨터비전
- 상속
- CSS
- 정보처리기사필기
- JDBC
- 중학1-1
- 디버깅
- ChatGPT
- 자바스크립트심화
- 파이썬
- 순환신경망
- 데이터베이스
- 연습문제
- JSP
- 자바
- 정보처리기사실기
- 머신러닝
- 데이터분석
- c언어
- 딥러닝
- SQL
- 자바스크립트
- 혼공머신
- 자바 실습
- 컴퓨터구조
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
상속 23 - 연습문제 실습편 문제 풀기 1 : 문제 1~2번 본문
오후에 이론편 연습문제까지 모두 풀었고 이제 실습편 문제가 남아있다. 어느 세월이 이 많은 문제를 다 풀까 모르겠지만 적어도 내일 새벽까지는 다 풀 수 있을 것 같다.
그럼 1번 문제부터 풀어보겠다.
연습문제 실습편 문제 풀기
문제 1번
문제 코드
아직 ColorTV 클래스가 구현되어 있지 않아 오류가 뜬다. 이제 이 클래스를 만들어보겠다.
ColorTV 클래스
Main 클래스
코드 설명
- TV 클래스
- size라는 필드를 가지며, 이는 TV의 크기를 나타냄
- getSize() 메서드로 size 값을 반환
- ColorTV 클래스
- TV를 상속받아 새로운 필드 color를 추가. 이는 컬러 개수를 나타냄
- 생성자에서 super(size)를 사용하여 부모 클래스의 생성자를 호출
- printProperty() 메서드로 size와 color를 출력
- Main 클래스
- ColorTV 객체를 생성하고, printProperty()를 호출하여 문제에서 요구하는 출력 결과를 확인
문제 2번
2번 문제가 1번에서 이어지고 있지만 코드가 조금씩 달라서 패키지를 따로 만들고 문제별로 클래스를 다시 생성해 주었다.
문제 코드
메인 클래스 부분이 조금 달라졌다. 이번에는 ColorTV를 상속받는 IPTV 클래스를 작성하는 것이다. 근데 IPTV 클래스만 새로 작성하는 것이 아니라 ColorTV도 달라져야 하는 부분이 있다.
문제 풀기
ColorTV 클래스
IPTV 클래스
코드 설명
- TV 클래스
- size 필드를 가지고 TV의 크기를 나타냄
- getSize() 메서드로 크기를 반환
- ColorTV 클래스
- TV 클래스를 상속받아 color 필드를 추가
- getColor() 메서드로 컬러 정보를 반환
- IPTV 클래스
- ColorTV 클래스를 상속받아 ipAddress 필드를 추가
- 생성자에서 super(size, color)를 호출하여 부모 클래스 필드를 초기화
- printProperty() 메서드에서 ipAddress, size, color 정보를 출력
- Main 클래스
- IPTV 객체를 생성하고, printProperty() 메서드를 호출하여 문제에서 요구하는 출력 결과 확인
getColor 메서드의 접근 제어자가 문제 1번과 달라진 이유는 클래스의 위치와 상속 관계에 따라 접근 제어자를 조정해야 할 필요성이 있기 때문이다.
1. 문제 1번의 경우 (getColor의 public)
public int getColor() {
return color;
}
- 문제 1번에서는 ColorTV 클래스와 그 메서드가 같은 파일 내에서만 존재했다.
- getColor 메서드는 외부에서 ColorTV 객체를 통해 접근해야 했으므로, public 접근 제어자를 사용하여 다른 클래스에서도 자유롭게 접근할 수 있게 설계되었다.
2. 현재 코드 (getColor의 protected)
protected int getColor() {
return color;
}
- 현재 문제에서는 ColorTV 클래스가 다른 패키지(문제02)에 위치하고 있다.
- 이 코드에서는 ColorTV를 상속받는 클래스나 동일 패키지 내의 클래스만 getColor를 사용할 수 있도록 설계하고 있다.
- protected 접근 제어자는 상속받은 클래스와 같은 패키지 내에서 접근 가능하기 때문에
- getColor 메서드가 외부에서 무분별하게 사용되지 않도록 제한하면서, 상속 관계에서는 접근 가능하게 만든다.
출력이 아주 잘 되었다.
학습을 마치고
어젯밤에 2번 문제를 다 풀지 못하고 잠자리에 들었다. 그리고 다음날 새벽 1시 반에 일어나 다시 공부를 시작하며 문제를 마무리할 수 있어서 정말 좋았다. 지난 세 달 동안의 블로그 학습일지 목표는 하루에 10개 이상을 올리는 거였는데, 앞으로 세 달은 평균 13개로 목표를 올려보았다.
어제도 그제도 최소 12개는 넘겼던 것 같다. 아침과 오후에 정말 공부하기 싫었던 시간이 있었지만 그 시간에도 책상 앞을 떠나지 않았으며 열심히 공부하려고 노력했다. 이처럼 열심히 노력하니 난 앞으로 좋은 결과가 있으리라 믿어 의심치 않는다.
'프로그래밍 언어 > 자바' 카테고리의 다른 글
상속 25 - 연습문제 실습편 문제 풀기 3 : 문제 5~8번 (0) | 2024.12.03 |
---|---|
상속 24 - 연습문제 실습편 문제 풀기 2 : 문제 3~4번 (0) | 2024.12.03 |
상속 22 - 연습문제 이론편 문제 풀기 4 : 문제 12~16번 (0) | 2024.12.02 |
상속 21 - 연습문제 이론편 문제 풀기 3 : 문제 9~11번 (0) | 2024.12.02 |
상속 20 - 연습문제 이론편 문제 풀기 2 : 문제 6~8번 (1) | 2024.12.02 |