본문 바로가기
혼공학습단

[혼공학습단7기] 2주차 기본 미션, 선택 미션

by Kimpeep 2022. 1. 23.

01. 기본 미션 : p.330 문제 5번 실행 결과 인증 화면 캡처하기.


개발 블로그에서 복사 허용을 해놓지 않는 것은 죄악이라 익히 들었습니다...

코드 모음.zip

Parent.java

package week2;

public class Parent {
    public String nation;

    public Parent() {
        this("대한민국");
        System.out.println("Parent() call");
    }
    public Parent(String nation) {
        this.nation = nation;
        System.out.println("Parent(String nation) call");
    }
}

Child.java

package week2;

public class Child extends Parent {
    public 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 week2;

public class ChildExample {
    public static void main(String[] args) {
        Child child = new Child();
    }
}

 

week2 라는 package 안에 Parent.java, Child.java, ChildExample.java 세 코드를 넣어 주었습니다.

ChildExample.java에 main이 있으니, 요 main을 실행해 주면

짜잔!

다음과 같은 결과가 출력됩니다.

 

간략하게 생성자의 순서를 생각해 볼까요?

1. main에서 new Child()를 통해 Child 객체를 생성할 준비를 합니다.
2. Child 클래스를 확인하니, Parent 클래스를 상속받네요? Parent 클래스를 먼저 확인합시다.
3. Parent() 생성자를 확인하니, this로 Parent(String nation) 생성자를 호출합니다.
4. field에 있는 nation을 매개변수 nation으로 초기화해 줍니다.
5. Parent(String nation)과 Parent()를 모두 불러왔으니, Child 클래스로 넘어갑시다!
6. Child 클래스에서도 Parent 클래스처럼 기본 생성자, Child()에 this로 Child(String name) 생성자를 호출하네요
7. 마찬가리고 field에 있는 name을 매개변수 name으로 초기화해 줍니다.
8. Child(String name)과 Child()를 모두 불러왔습니다.

실행 끝!

 

02. 선택 미션 : 객체 지향 프로그래밍의 개념을 정리하기.


영어로는 Object-Oriented Programming으로, 컴퓨터 프로그래밍의 체계 중 하나입니다.

명령어 중점으로 작성하던 절차 지향 프로그래밍과는 달리, 이름처럼 객체중점으로 프로그래밍을 합니다.

객체는 무엇이냐? 여러 개의 독립된 단위로, 클래스의 인스턴스*입니다. 자료와 자료를 다루는 명령을 조합하여 메시지를 주고받고, 다른 객체에게 보내기 등도 가능합니다.

*인스턴스 : 실행 중인 임의의 프로세스, 클래스의 현재 생성된 객체를 의미합니다. 그럼 그냥 클래스가 현재 생성한, 메모리에 할당된 객체라고 불러도 되지 않나요?

다시 객체 지향 프로그래밍으로 돌아옵시다. 객체 지향 프로그래밍은 절차 지향 프로그래밍과 달리 객체를 중점으로 코드를 작성한다고 앞서 말했습니다. 이는 프로그램을 유연하고, 변경하기 쉽게 만들어 주며 프로그램의 유지보수를 보다 간편하게 할 수 있습니다. 주로 대규모 소프트웨어를 개발할 때 많이 사용하며, 직관적으로 코드를 분석할 수 있기에 타인이 코드를 보았을 때도 쉽게 이해할 수 있다는 장점이 있습니다.

 

객체 지향 프로그래밍의 기본 구성 요소는 다음과 같습니다.

  • 클래스 : 속성과 행위를 정의한 것으로, 사용자 정의 데이터라고도 불립니다. 다른 클래스, 외부 요소와는 독립적으로 디자인해야 합니다. 필드, 생성자, 메서드를 필수로 가져야 합니다.
  • 객체 : 클래스의 인스턴스입니다. 고유의 속성을 가지고, 클래스의 행위를 수행할 수 있습니다.
  • 메서드 : 생성된 객체를 사용하는 방법으로, 객체에 명령을 내리는 메시지라고도 불립니다.

객체 지향 프로그래밍은 자료 추상화, 상속, 다중 상속, 다형 개념 및 동적 바인딩 등이 가능합니다. 

 

혼공단 기준, 이 중 상속과 자료 추상화, 추상 클래스를 이번 주에 학습하였어요!

 


이렇게 또 한 주가 지나갔네요. 내 소중한 방학아 가지 마...~ 구구절절 이번 주 리뷰

 

  • 자바는 해보고 또 해봐도 새로운 것 같습니다. 이쯤 되면 익숙해질 때도 됐을텐데?
  • 저는 인생 첫 번째 토익을 응시하고 왔답니다! 점수가 존재함에 의의를 두기로 했어요.
  • 제가 응원하는 팀이 오늘 경기로 단독 1위로 올라갔습니다. 주모 샤따내려... 제발.
  • 조금 늦었지만? 제가 만든 심리 테스트 자랑을 해 보겠습니다. https://lck-mindtest.netlify.app/ 
 

LCK 컬러 팔레트

LCK 컬러 팔레트

lck-mindtest.netlify.app

      열심히 며칠동안 낑낑거리며 만들었으니... 많관부 많참바...~

  • 이렇게 또 한 주가 지나갔네요. 돌아오는 주 다시 열심히 달려 봅시다 아자자 👏

댓글