일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Apple Developer Academy @ POSTECH
- global soop
- 운영체제
- 애플 디벨로퍼 아카데미
- iOS 개발 오류
- ObservableObject
- SWIFT
- 제앱소
- 숭실대
- 애플 아카데미 후기
- 네이버 부스트캠프
- StateObject
- useReducer
- 앱 비교 프로젝트
- Swift 문법
- Swift 기능
- 치지직
- apple developer academy 후기
- 네이버 치지직
- 소프트웨어분석및설계
- OS
- react
- 데이터베이스 공부
- 데이터베이스
- sqoop
- Swift 디자인패턴
- swift문법
- 애플 디벨로퍼 아카데미 21주차 회고
- 애플 디벨로퍼 아카데미 후기
- ObservedObject
- Today
- Total
사과하는 제라스
[소프트웨어 분석 및 설계] 2. Essence of OOP 본문
목차
OOP란?
- 객체 지향 프로그램은 런타임 시 객체들로 이루어져 있음.
- 객체는 Attributes와 Operation(=Method)로 이루어진 작은 모듈이다.
- 객체는 현실 세계에서의 독립체들을 표현한다.
ex. Person, Car, Bank Account...
Encapsulation이란?
: 연관성 있는 Attributes와 Operations를 하나의 객체에 그룹핑하는 것.
Information Hiding
: attributes나 operations를 클라이언트로부터 숨겨두는 것. 대신 get/set operation들을 통해 접근하게 함.
Visibility specifiers
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
: 실행문이 없는 클래스
'대학 전공 공부 > 소프트웨어 분석 및 설계' 카테고리의 다른 글
[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램) (0) | 2022.10.27 |
---|---|
[소프트웨어 분석 및 설계] 5. 시퀀스 다이어그램(Sequence Diagram) (0) | 2022.10.27 |
[소프트웨어 분석 및 설계] 4. 클래스 다이어그램(Class Diagram) (0) | 2022.10.26 |
[소프트웨어 분석 및 설계] 3. Use Case Diagram 기능 모델링 (0) | 2022.10.26 |
[소프트웨어 분석 및 설계] 6. Activity Diagram (0) | 2022.10.18 |