IEIP_Note

객체 지향 Object Oriented ☆☆☆


객체 지향의 구성 요소


객체 지향 특징

캡슐화 Encapsulation


상속 Inheritance


다형성 Polymorphism

//Overloading

void func(int a){}
void func(char a){}
void func(int a, int b){}

/*
	* 매개변수의 유형과 개수를 다르게 하여
	* 같은 이름의 메서드를 여러 개 가지는 기법
*/
//Overriding

class A {
	void func(int a){
		System.out.println(a);
	}
}

class B extends A {
	//부모 class A로부터 상속 받은 func 메서드 재정의
	void func(int a){
		System.out.printf("a의 값: %d\n", a);
	}
}

/** 
	* class B는 A class로부터 상속 받은 상태이다.
	* 이때 부모 클래스인 A가 가지고 있던 func 메서드를
	* 자식 클래스에서 재정의해서 사용할 수 있다.
	* 
	* 부모 클래스로부터 상속 받은 메서드를 
	* 자식 클래스에 재정의해서 사용하는 기법 => 오버라이딩
*/

추상화 Abstraction

abstract class A {
	abstract void func(){}
}

class B extends A {
	//추상 클래스 A를 상속 받은 B 클래스는
	//추상 메서드인 func를 재정의, 오버라이드를 해줘야 한다.
	void func(){
		System.out.println("Hello World");
	}
}

객체 지향 설계 원칙, S.O.L.I.D

설계 원칙 설명
단일 책임의 원칙 하나의 class는 하나의 목적을 위해 생성되며
class가 제공하는 모든 서비스는
하나의 책임을 수행하는 것에만 집중해야 한다는 법칙
개방 폐쇄 원칙 SW의 구성 요소 (컴포넌트, class, 모듈, 함수)는
확장일 때는 열려있고 변경에는 닫혀 있어야 하는 법칙
Liskov 치환의 법칙 상속 받은 하위 class는 어디서나 자신의 기반 타입,
상위 class로 교체할 수 있어야 한다는 법칙
인터페이스 분리 원칙 한 class는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 법칙
클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다는 법칙
의존성 역전의 법칙 실 사용 관계는 바뀌지 않으며, 추상을 매개로
메시지를 주고받음으로써 관계를 최대한 느슨하게 만드는 법칙

객체 지향 구현 절차

구현 절차 설명
요건 정의 업무 요건 정의
객체 지향 분석 객체 모델링, 동적 모델링, 기능 모델링 수행
객체 지향 설계 및 구현 시스템 설계, 객체 설계
객체 지향 구현
테스트 및 배포 테스트, 패키지
프로젝트 평가

객체 지향 분석 Object Oriented Analysis

객체 지향 방법론 ☆☆☆

OOSE, Object Oriented Software Engineering


OMT, Object Modeling Technology

OOD, Object Oriented Design