ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 18. 객체지향 프로그래밍_2 (2/2)
    [JAVA] 2023. 5. 25. 20:30

    1. 접근제어자: 4개 중 1개만 사용할 수 있다


      1) private: 같은 클래스 내에서만 접근이 가능하다
      2) (default): 같은 패키지 내에서만 접근이 가능하다
      3) protected: 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다
      4) public: 접근 제한이 전혀 없다

     


    2. 캡슐화


    - 데이터를 보호하기 위해서 접근제어자를 사용한 것
    - 외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위해서 사용한 것


    3. 다형성

    - 여러 가지 형태를 가질 수 있는 능력
    - 조상 타입 참조 변수로 자손 타입 객체를 다루는 것
    * 자손 타입의 참조변수로 조상 타입의 객체를 가르킬 수 없다

     


    4. 참조변수의 형변환


    - 사용할 수 있는 멤버의 개수를 조절하는 것

    5. instanceof 연산자


    - 참조변수의 형변환 가능 여부 확인에 사용 *가능하면 true 반환
    - 반드시 instanceof로 확인 후 형변환을 진행한다.
    - 조상 클래스는 true


    6. 매개변수의 다형성


    - 참조형 매개변수는 메서드 호출 시 *자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.
    장점:

    1. 조상타입의 참조변수로 자손 객체 다루기
    2. 참소변수의 형변환
    3. instanceof 연산자

     


    7. 여러 종류의 객체를 배열로 다루기


    8. 추상클래스 (abstract class)


    - 추상메서드를 갖고 있는 클래스
    - 다른 클래스 작성에 도움을 주기 위한 것이다. *인스턴스 생성 불가
    - 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능
    - 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우 사용
    - 추상메서드 호출 가능 *호출할 때는 선언부만 필요


    9. 추상클래스의 작성


    - 여러 클래스의 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나
    - 기존클래스의 공통 부분을 뽑아서 추상클래스를 만든다

     


    10. 인터페이스(interface)


    - 추상메서드의 집합
    - 구현된 것이 전혀 없는 설계도 *모든 멤버가 public
    - 추상클래스와의 차이점: 추상클래스는 추상메서드(iv)를 갖고 있는 클래스이고, 인터페이스는 아무것도 없다
    - 인터페이스의 조상은 인터페이스만 가능 (object X)
    - 다중 상속이 가능하다
    - 인터페이스의 구현: 인터페이스의 정의된 추상 메서드를 완성하는 것

     


    11. 인터페이스(interface)를 이용한 다형성


    - 인터페이스 타입 매개변수는 인터페이스 구현한 클래스의 객체만 가능
    - 인터페이스를 메서드의 리턴타입으로 지정할 수 있다.


    12. 디폴트 메서드와 ststic메서드


    - 인터페이스에 새로운 메서드를 추가하는 것이 어렵기 때문에 디폴트 메서드를 사용한다.
    * 추상메서드 추가 시 구현중인 클래스에 많은 변화가 일어남
    ** 다양한 충돌에 대해 오버라이딩 또는 조상클래스에 상속 등으로 해결함

     


    13. 내부클래스(inner class)


    - 외부 클래스 내부에 있는 클래스
    - 내부클래스에서 외부클래스의 멤버들에 쉽게 접근할 수 있다.
    - 코드의 복잡성을 줄일 수 있다 *캡슐화

    14. 내부클래스의 제어자와 접근성


    - 내부클래스의 제어자는 변수에 사용 가능한 제어자와 동일


    15. 익명클래스 (anonymous class)


    - 이름 없는 일회용 클래스
    - 정의와 생성을 동시에 한다.

Designed by Tistory.