* 객체지향 개념 : 실세계 개체(Entity)를 속성(Attribute)과 메소드(Method)가 결합된 형태의 객체(Object)로 표현하는 개념. 구현 대상을 하나의 객체로 보고 객체와 객체들 간 관계로 모델링 하는 방법
* 구성요소
구분 | 내용 |
클래스 (Class) | - 같은 종류 객체들 집합에 공통 속성과 행위 정의 - 객체지향 P/G 기본적인 사용자 정의 데이터형 |
객체 (Object) | - 클래스 인스턴스 (실제로 메모리 상에 할당된 것) - 자신 고유 데이터 가지며 클래스에서 정의한 행위 수행 |
속성 (Attribute) | - 객체 데이터 |
메소드 (Method) | - 객체 행위 (함수, 메소드) - 클래스로부터 생성된 객체 사용하는 방법 |
메시지 (Messsage) | - 객체 간 통신 |
* 기법
특징 | 상세내용 |
캡슐화 (Encapsulation) |
- 속성과 메소드 하나로 묶어서 객체로 구성 - Readability 항상 : 유지보수 용이 - 재사용성 높은 S/W 개발 가능 - 정보 은닉으로 내부 자료 일관성 유지 - 객체 간 인터페이스 이용, 종속성 최소화 |
추상화 (Abstraction) |
- 공통 성질 추출하여 슈퍼클래스로 구성 - 객체 중심 안정된 모델 구축 - 현실 세계 자연스럽게 표현 - 분석 초점 명확해짐 |
다형성 (Polymorphism) |
- 동일한 이름의 여러 오퍼레이션(메소드) 다른 사양으로 정의 가능 - 오버로딩 : 매개변수 수 또는 타입 달리하여 구분 - 오버라이딩 : 부모클래스 메소드 재정의 |
정보은닉 (information Hiding) |
- 캡슐화된 항목 다른 객체로부터 숨김 - 메시지 전달에 의해 다른 클래스 내 메소드 호출됨 |
상속성 (Inheritance) |
- 부모 클래스 속성과 메소드 상속받아 사용 - 부모와 자식 클래스 간 관계가 슈퍼 클래스와 서브 클래스로 유지 - 부모 클래스는 추상적이며, 자식 클래스는 구체적 성질 가짐 |
320x100
* 다형성의 오버라이딩과 오버로딩
구분 | 오버라이딩(Overriding) | 오버로딩(Overloading) |
개념 | - 상속관계에서 상위 클래스 메소드를 하위 클래스에서 재정의 | - 하나의 클래스 내에서 같은 이름으로 여러 개 매소드 정의 |
메소드 명 | - 상속관계 내 동일 | - 특정클래스 내 동일 |
매개변수 개수, 타입 | - 반드시 동일 | - 개수 또는 타입 다름 |
리턴 타입 | - 기본적으로 동일 | - 상관없음 |
접근 제한 | - 범위 같거나 넓어야 함 | - 상관없음 |
//오버라이딩
public class ABC {
public void XYZ() {}
}
public class DEF extends ABC {
public void XYZ() {}
}
//오버로딩
public class GHI extends ABC {
public void XYZ() {}
public void XYZ(int number) {}
}
320x100
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사 필기 요약] 디자인 패턴(1) - 생성패턴 (0) | 2021.03.02 |
---|---|
[정보처리기사 필기 요약] 객체지향 설계원칙 (SOLID) (0) | 2021.03.02 |
[정보처리기사 필기 요약] 코드의 기능 (0) | 2021.03.02 |
[정보처리기사 필기 요약] SW 아키텍처 4+1 View (0) | 2021.03.02 |
[정보처리기사 필기 요약] (01-01/01~02) 소프트웨어 설계 - 요구 사항 확인 (0) | 2020.12.16 |
댓글