관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 2. Essence of OOP 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 2. Essence of OOP

Xerath(제라스) 2022. 10. 26. 19:04

목차

    728x90
    반응형

    OOP란?

    - 객체 지향 프로그램은 런타임 시 객체들로 이루어져 있음.

    객체 그림(Object = Attributes+Opertations)

    - 객체는 Attributes와 Operation(=Method)로 이루어진 작은 모듈이다. 

     

    - 객체는 현실 세계에서의 독립체들을 표현한다.

    ex. Person, Car, Bank Account...

     

    Encapsulation이란?

    : 연관성 있는 Attributes와 Operations를 하나의 객체에 그룹핑하는 것.

    캡슐화 예시

    Information Hiding

    : attributes나 operations를 클라이언트로부터 숨겨두는 것. 대신 get/set operation들을 통해 접근하게 함.

     

    Visibility specifiers

    Java 접근 지정자 특징

    Class = group of Objects

     

    Instance

    : class에 속하는 객체

     

    - 같은 class로부터 여러 인스턴스가 생성될 수 있다.

    - 같은 class의 instance들은 동일한 attribute set을 갖고 있고 그 value들이 다를 수 있다.

     

    - Java에서의 instance 생성 방법 : new

    ex. Employee e1 = new Employee("DJ");

     

    Method VS Message

    Method는 객체 내의 operation의 실행을 의미하는 반면,

    Message는 이 메소드를 실행하도록 하는 명령이다.

     

    Inheritance

    Generalization: generic element(super class)와 specific element(sub class)의 관계

    subclassing: 존재하는 클래스(super class)에서 새로운 클래스(subclass)를 만드는 메커니즘.

     

    Protected의 장단점

    장점: 서브 클래스가 protected 요소들을 직접 변경이 가능함.

    단점: 유효성 검사가 불가능함, Modularity를 해침(슈퍼 클래스와 서브 클래스 간의 dependency)

     

    Polymorphism(다형성)

    - 메소드 오버로딩

    - 메소드 오버라이딩

     

    Dynamic Binding(동적 바인딩)

    : 런타임 때 일어나는 값이 정해지는 바인딩.

     

    Abstract Class(추상 클래스)

    : 해당 클래스를 상속하는 모든 클래스들이 내부에 구현된 것들을 상속을 반드시 해야하는 클래스.

    - body가 없음.

     

    추상 클래스 예시

    Interface

    : 실행문이 없는 클래스

    728x90
    반응형