2 주차까지 진도가 꽤나 빠르게 잡혀있어서 빠르게 보고 있는데, 역시나 버겁다.
파이썬을 그동안 프로그래밍보다는 도구로서 활용했다보니 클래스나 상속과 같은 개념들이 생소했다.
기본미션
주차 | 진도 | 기본 미션 |
2주차 (7/10 ~ 7/16) |
Chapter 06 ~ 09 | p.330 문제 5번 실행 결과 인증 화면 캡쳐하기 |
p.330 문제 5번
Parent 클래스를 상속받아 Child 클래스를 다음과 같이 작성하고 ChildExample 클래스를 실행했을 때 호출되는 각 클래스의 생성자의 순서를 생각하면서 출력결과 작성해보기
Parent.java
package sec01.verify.exam05;
public class Parent {
public String nation;
public Parent() {
this("대한민국");
System.out.println("Parnet() call");
}
public Parent(String nation) {
this.nation = nation;
System.out.println("Parnet(String) call");
}
}
Child.java
package sec01.verify.exam05;
public class Child extends Parent{
private String name;
public Child() {
this("홍길동");
System.out.println("Child() call");
}
public Child(String name) {
this.name = name;
System.out.println("Child(string name) call");
}
}
ChildExample.java
package sec01.verify.exam05;
public class ChildExample {
public static void main(String[] args) {
Child child = new Child();
}
}
호출 순서는 다음과 같다.
1. ChildExample 클래스의 main 메서드가 실행됨
2. Child 클래스의 객체 child가 생성함
3. Child 클래스의 생성자가 호출함
- Child 클래스의 생성자에서 this("홍길동")을 호출하므로, 다음으로 Child(String name) 생성자가 호출됨
- Child(String name) 생성자에서 this.name = name을 실행함
- "Child(string name) call" 출력
- "Child() call" 출력
5. Child 클래스의 생성자가 실행을 완료하면, 상위 클래스인 Parent 클래스의 생성자가 호출함
- Parent 클래스의 생성자에서 this("대한민국")을 호출하므로, 다음으로 Parent(String nation) 생성자가 호출됨
- Parent(String nation) 생성자에서 this.nation = nation을 실행함
- "Parent(String) call" 출력
- "Parent() call" 출력
6. Parent 클래스의 생성자가 실행을 완료하면, Child 클래스의 생성자가 실행을 완료함
출력 결과는 다음과 같다.
Parent (String) call
Parent() call
Child (string name) call
Child() call
호출순서와 출력순서가 상이한데,
그 이유는 Parent 클래스의 생성자의 실행이 완료되면, Child 클래스의 생성자의 실행이 완료되어 "Child(string name) call"이 출력되기 때문이다.
선택미션
주차 | 진도 | 선택 미션 |
2주차 (7/10 ~ 7/16) |
Chapter 06 ~ 09 | 객체 지향 프로그래밍의 개념을 정리하기 |
파이썬으로 개발언어를 맛보고 있는 나로서는 대단한 진입장벽 중에 하나인 개념이다. 왜냐하면 파이썬은 굳이 객체 지향 프로그래밍 개념을 몰라도 어느 정도 굴릴 수 있지만, 자바는 그렇지 않음을 이번에 공부하면서 알았기 때문이다.
객체 지향 프로그래밍의 개념 정리
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
위키백과에서 정의한 객체 지향 프로그래밍의 정의이다.
절차적 프로그래밍과 비교되는 개념으로 유지보수, 가독성 등의 이점이 있다.
자세한 내용은 아래 별도의 포스팅으로 다뤄보겠다.
2023.07.16 - [스터디/혼공학습단 - 자바] - [혼공학습단] 객체지향 프로그래밍을 좀 더 쉽게 이해해보자.
'스터디 > 혼공학습단 10기 - 자바 & 머신러닝' 카테고리의 다른 글
[혼공학습단] 3주차 - 로지스틱 회귀를 확실하게 이해해보자! (0) | 2023.07.17 |
---|---|
[혼공학습단] 객체지향 프로그래밍을 좀 더 쉽게 이해해보자. (0) | 2023.07.16 |
[혼공학습단] - 혼공머신 2주차(7/10 ~ 7/16) (0) | 2023.07.16 |
[혼공학습단] Java - print() 메서드 종류 (0) | 2023.07.09 |
[혼공학습단] - 혼공자바 1주차(7/3 ~ 7/9) (0) | 2023.07.05 |
댓글