본문 바로가기
스터디/혼공학습단 10기 - 자바 & 머신러닝

[혼공학습단] - 혼공자바 2주차(7/10 ~ 7/16)

by 찌노오 2023. 7. 16.

 

 

 

 

 

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 - [스터디/혼공학습단 - 자바] - [혼공학습단] 객체지향 프로그래밍을 좀 더 쉽게 이해해보자.

 

[혼공학습단] 객체지향 프로그래밍을 좀 더 쉽게 이해해보자.

비전공자입장에서, 프로그래밍을 제대로 배우지 못한 사람의 입장에서 객체지향 프로그래밍을 이해하기 위해 정리해보려고 한다. 객체지향 프로그래밍이 뭔데? 쉽게 설명해봐! 최초의 프로그

jinooh.tistory.com

 

 

 

반응형

댓글