본문 바로가기
프로그래밍/Java

개체 지향의 특성

by 3.14pie 2023. 1. 5.

개체 - 서로 연관있는 상태와 동작을 가지고 있다. 사람들은 기본적으로 세상을 개체의 모음으로 인식한다.

 

개체지향의 특성

캡슐화(Encapsulation) - 데이터와 그 데이터에 작용하는 메서드를 하나로 묶는다. 개체 안에 있는 데이터를 외부로부터 보호한다.

상속(Inheritance) - 이미 존재하는 개체를 기반으로 확장된 개체를 만드는 방법이다. 더 정확히는 클래스를 말한다. 코드 중복을 막을 수 있다.

다형성(Polymorphism) - 같은 지시를 했는데(동일한 함수를 호출) 다른 종류의 개체가 동작을 다르게 하는 것(개체의 종류에 따라 실제 실행되는 코드가 다름)이다. 어떤 함수가 실행될지는 실행 중에 결정한다.(늦은 바인딩, late binding) 일반적으로는 이른 바인딩(early binding)으로 컴파일 중에 결정된다. 상속 관계가 필요하다. 자식 개체에서 함수를 다르게 구현한다.(오버라이딩, overriding) 다른 종류의 개체를 편하게 저장하고 처리할 수 있다. -> 서브타입 다형성

추상화(Data Abstraction) - 개체 속에 있는 실제 데이터나 함수 구현 방법에 종속되지 않는다. 개체를 사용할 때 그 안에 정확히 어떤 데이터가 있는지 알 필요가 없다. 직접 접근이 불가능하기 때문인데 캡슐화때문에 그렇다.

연관(Association) - 어떤 개체가 제공하는 기능을 다른 개체가 이용하는 관계이다. 집합과 컴포지션이 있다.

컴포지션(Composition) - 여러 개체를 조립해 새로운 개체를 만드는 방법이다. ex. 차 부품

집합(Aggregation) - 여러 개체를 모아 새로운 개체를 만드는 방법이다. 별도로도 존재할 수 있다. ex. 학교와 학생

'프로그래밍 > Java' 카테고리의 다른 글

Static, 디자인 패턴, 내포 클래스  (0) 2023.01.13
Static  (0) 2023.01.11
접근 제어자  (0) 2023.01.08
클래스  (0) 2023.01.05
Java란?  (0) 2022.12.14