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

[소프트웨어 분석 및 설계] 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
반응형