객체 지향 프로그래밍, "객체"들의 모임으로 파악하고자 하는 것이며 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
!절차적 방법 : 처리 순서를 구조화하는 방법으로 기능이 중심(우선)이 되고 그 기능을 수행하는 데 필요한 데이터가 참조되는 형태로 구성
!객체지향 방법 : 프로세스 지향 방법과 데이터 지향 방법의 문제점을 해결하기 위해 고안되었으며 기능이나 데이터 대신 객체가 중심이 되어 개발
!객체(object) : 실세계에 존재하거나 생각할 수 있는 것
!클래스(Class) : 공통되는 것들을 묶어서 대표적인 이름을 붙인 것
!캡슐화(Encapsulation) : 사용자들에게 해당 객체의 기능(서비스)과 사용법만 제공하고 내부는 감추어(변경할 수 없게 함) 쉽게 사용할 수 있게 하는 개념
!정보은닉(Information hiding) : 외부(다른 객체)에서 객체의 내부(데이터)를 들여다볼 수 없다는 개념
!상속(Inheritance) : 상위 클래스super class의 모든 것을 하위 클래스sub class가 물려받는 것
!다형성(Polymorphism) : 같은 이름의 메서드가 객체에 따라 다르게 동작하고, 서로 다른 구현(코드)을 제공
!오버로딩(Overloading) : 한 클래스에 이름이 동일한 메서드를 매개변수 타입이나 개수를 다르게하여 재사용하는 것
!오버라이딩(Overriding) : 상위 클래스에서 정의한 일반 메서드의 구현을 하위 클래스에서 모두 무시하고 다시 재정의해서 사용 가능
!연관 관계(Association relationship) : 두 클래스는 서로 메시지를 주고받으며 이용하는 관계
!집합 관계(Aggregation relationship) : 거대한 객체 하나를 소규모 객체 여러 개로 구성
!포함 관계composition relationship : 전체 객체에 완전히 전속되어 독립된 객체로 존재할 수 없는 부분 객체가 존재하는 관계
클래스 = 캡슐
1>캡슐화 -> 내부는 복잡 ,but사용자가 객체에 쉽게 사용 할 수 있도록 하는 개념
2>information hiding ->상속받은 내용으로 재작업 변경(인터페이스 통한접근)
3>상속->기능과 변수를 하위클래스가 상위클래스로 부터 물려받는 것
4>다형성(폴리모피즘)-> 같은이름의 메서드가 객체에 따라 다르게 동작, 서로다른 코드 구현 ex) 탈 것 (상위) -> 버스를 타다, 비행기를 타다 ,배를 타다, 등..(하위)
5> 연관관계 :클래스다 또다른 클래스인지, 링크 (객체사이 연결)
6> 집합관계 : 연관관계를 더 구체적으로,, 컴퓨터는 모니터, 키보드, 마우스로 구성-> 컴퓨터가 사라져도 모니터 키포드 등 다 그대로
7> 포함관계 : 상위클래스 없어지면 하위 클래스도 사라짐, 노트북 과 노트북안의 키보드 , 마우스
객체지향의 방법으로 모델링한 것을 : uml 개체의 관계를 표기하는 방법(모델링을 표기하기 위한 수단)