PREVIEW

구조체 → 클래스

WHY? 지역 변수를 사용하는 것이 좋음, BUT 공유 필요

c언어 → **전역 변수**로 공유

자바 → 공유되는 데이터와 함수를 묶어서 **클래스**로 공유

⇒ 해당 클래스를 다른 곳에서도 사용하기 위해 조금만 수정하면 OK

  1. 상속

    : 부모 클래스에서 만들어진 필드와 메서드를 자식 클래스가 물려 받음

    → 부모 클래스의 기능은 물론 나만의 간단한 기능을 추가 가능

    ⇒ 클래스의 간결화 : 간결한 자식 클래스 (동일한 특성 재정의 X, 중복 X)

    ⇒ 클래스 관리 용이 : 클래스들의 계층적 분류

    ⇒ 소프트웨어 생산성 향상 : 클래스 재사용과 확장 용이

  2. 자바의 상속

    cf) 다운캐스팅을 완벽하게 활용하면 고급 기술자가 될 수 있다.

    1. 자바는 다중 상속을 지원 X (c++은 다중 상속 지원)

    → A, B, C를 모두 상속 받기 위해서

    A → X (A+B) →Y (A+B+C)

    (or 하나의 인터페이스로 만들어서 다중 상속 처리 가능)

    1. 상속은 무제한으로 가능

    → final 키워드가 붙어있으면 상속 불가능

    1. 자바의 최상위 클래스는 java.lang.object

    → 모든 클래스는 이를 상속

    (클래스에 없어도 오류 나지 않는 함수 → 해당 클래스에 존재)

    ※ toString() → 작성법

    : 클래스의 설명으로 재정의 ← 오버라이딩 할 때

    클래스의 설명, 값 등을 담아 모든 클래스에 정의

    상속 관련 문제는 최소 3개의 파일 필요 (수퍼 클래스, 서브 클래스, MAIN)

    예제) 포인트 클래스와 컬러 포인트를 만들 수 있어야 한다. → Color Point Ex.

  3. 상속과 protected 접근 지정자

    수퍼 클래스의 private 멤버 변수 접근 방식

    → 수퍼 클래스의 get(), set() 등의 멤버 함수를 통해 접근

    ⇒ 외부에 해당 클래스에 변수의 구성 등을 보여주지 않기 위해 보호

  4. 생성자

    1. 생성자 호출

    ⇒ 호출은 서브 클래스가 먼저 호출/실행은 수퍼 클래스가 먼저 실행

    1. 생성자 선택 → 생성자가 여러 개 있는 경우

    ※ this()와 super() 비교

    공통점) 생성자를 호출할 때 사용

        생성자 코드의 첫번째 문장이어야 한다.
    

    차이점) this() ← 같은 클래스 내에서 자기의 다른 생성자 호출

        super() ← 상속 받는 클래스 내에서 슈퍼 클래스의 생성자 호출
    
                    ( 슈퍼 클래스의 생성자를 선택하기 위해)
    

    시험 문제) 생성자가 수퍼 클래스의 생성자를 선택하는 과정