속성과 메서드가 결합한 형태의 객체 Object로 표현하는 기법Class
    변수 / 행위: 메서드Object
    Class에서 정의한 것을 토대로 메모리에 할당된다.Method
    Class로부터 생성된 객체를 사용하는 방법Function, Procedure에 해당하는 연산 기능Message
    Instance
    Class 통해 생성한 실제 객체Property
    Class 내에 속한 객체들이 가진 데이터 값을 단위 별로 정의캡슐화, 상속, 다형성, 추상화, 정보 은닉, 관계성이 존재한다.캡-상-다-추-정-관정보 은닉, 관계성 정리 보류Class의 Property와 method를 하위 class에서 재정의 없이 물려받아 사용하는 기법class에서 속성, 연산을 전달 받아 새로운 형태의 class로 확장하여 사용하는 기법Overloading, Overriding이 대표적이다.//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 메서드를
	* 자식 클래스에서 재정의해서 사용할 수 있다.
	* 
	* 부모 클래스로부터 상속 받은 메서드를 
	* 자식 클래스에 재정의해서 사용하는 기법 => 오버라이딩
*/
abstract class A {
	abstract void func(){}
}
class B extends A {
	//추상 클래스 A를 상속 받은 B 클래스는
	//추상 메서드인 func를 재정의, 오버라이드를 해줘야 한다.
	void func(){
		System.out.println("Hello World");
	}
}
의존성 역전의 원칙 Dependency Inversion Principle
SOLID라고 한다.| 설계 원칙 | 설명 | 
|---|---|
| 단일 책임의 원칙 | 하나의 class는 하나의 목적을 위해 생성되며 class가 제공하는 모든 서비스는 하나의 책임을 수행하는 것에만 집중해야 한다는 법칙 | 
| 개방 폐쇄 원칙 | SW의 구성 요소 (컴포넌트, class, 모듈, 함수)는 확장일 때는 열려있고 변경에는 닫혀 있어야 하는 법칙 | 
| Liskov 치환의 법칙 | 상속 받은 하위 class는 어디서나 자신의 기반 타입, 상위 class로 교체할 수 있어야 한다는 법칙 | 
| 인터페이스 분리 원칙 | 한 class는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 법칙 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다는 법칙 | 
| 의존성 역전의 법칙 | 실 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고받음으로써 관계를 최대한 느슨하게 만드는 법칙 | 
| 구현 절차 | 설명 | 
|---|---|
| 요건 정의 | 업무 요건 정의 | 
| 객체 지향 분석 | 객체 모델링, 동적 모델링, 기능 모델링 수행 | 
| 객체 지향 설계 및 구현 | 시스템 설계, 객체 설계 객체 지향 구현 | 
| 테스트 및 배포 | 테스트, 패키지 프로젝트 평가 | 
사용자의 요구사항을 분석하여 요구된 문제와 관련된 
  모든 class, 속성과 연산, 관계 등으로 나누어 분석하는 기법
usecase에 의한 접근 방법으로, Usecase를 모든 모델의 근간으로 활용되는 방법론객체 모델링 - 동적 모델링 - 기능 모델링 순서로 분석을 진행한다.
1. 객체 모델링
    정보 모델링라고도 한다.2. 동적 모델링
    기능 모델링