객체 지향
예전에는 C언어와 같은 절차 지향 언어가 주를 이루었다.
'절차 지향'이란, 실행하고자 하는 순서대로 명령어를 입력하여 실행하는 방법이다.
과거에는 프로그램의 단위가 크지 않았고, 간단한 logic을 순차적으로 처리했기 때문에 절차지향을 사용했는데, 이후 컴퓨터가 발전하면서 프로그램이 복잡해져 유지보수, 개발기간 등 부분에서 비효율이 발생하였다.
이 어려움을 해결하기 위해 객체지향이 도입되었다.
'객체지향'이란, 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정의하고 절차적이 아닌 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계한 것이다.
사물(객체), 행위(Method), 사물의 속성(변수-variable)을 사용하였다.
자바와 C++의 차이
java는 시스템 레벨 접근, 메모리 직접 할당 및 해제, 포인트 등 복잡한 개발 방식을 사용하지 않음.
또 JVM(자바 가상 머신)만 있으면 독립적으로 실행 가능하여 호환성 제공
객체 = 사물 = object
○ 객체의 3가지 요소
1. 상태 유지( 객체의 상태 )
객체는 상태 정보를 저장하고 유지되어야 하며, 이러한 속성은 변수로 정의되어야 한다.
이 속성값이 바뀜으로 인해 객체의 상태가 변경될 수 있어야 한다.
2. 기능 제공( 객체의 책임 )
객체는 기능을 제공해야 한다. 이 부분은 Method의 제공으로 이루어진다.이 부분은 캡슐화와 연관이 있으며, 외부로부터 직접 속성에 접근하여 변경하는 것이 아닌 객체가 제공하는 method로 기능이 제공되어야 한다.
2. 고유 식별자 제공( 객체의 유일성 )
각각의 객체는 고유한 식별자를 가져야 한다.
○ 물리 객체와 개념 객체
물리 객체
실제로 사물이 존재하며, 이를 클래스로 정의한 객체
개념 객체
웹 시스템의 service에 해당하며, business logic처리
business logic에서는 여러 객체를 서로 상호작용 하도록 하며 객체가 제공하는 오퍼레이션(method)를 통해 객체의 속성을 변경시킨다.
객체지향에서 대부분의 코딩은 각 객체에 기능을 정의하고 이를 business logic을 처리하는 service에서 객체의 method를 활용하여, 여러 가지 조건을 확인하여 객체의 속성을 변경하는 작업이 된다.
객체의 속성, 이 속성을 변경하거나 상태를 변경할 수 있는 오퍼레이션(method)을 잘 정의해야 한다.
'이론 정리 > java' 카테고리의 다른 글
JAVA에서 ArrayList와 LinkedList에 관해, 그리고 vector (0) | 2022.02.26 |
---|---|
java에서 String & StringBuffer & StringBuilder에 관해 (0) | 2022.02.25 |
java HashMap의 Thread-Safe이슈와 HashTable, ConcurrentHashMap (0) | 2022.02.25 |
java배열 다중 정렬하기 (0) | 2021.09.06 |
패캠 - java/spring 웹 개발 강의 수업 정리(2) (0) | 2021.06.28 |