▶ 객체란?
: 소프트웨어 객체는 현실 세계의 객체를 필드와 메소드로 모델링 한 것으로,
상태를 필드(Field)로 정의하고, 동작을 메소드(Method)로 정의한다.
이 때, 필드는 객체 내부에 선언된 변수를 의미하고, 메소드는 객체 내부의 정의된 동작을 의미한다.
▶ 절차 지향 프로그래밍
객치 지향을 알아보기 전에 절차 지향에 대해서 먼저 알아보겠습니다.
절차 지향 프로그래밍은 일련의 동작을 순서에 맞추어 단계적으로 실행하도록 명령어를 나열하여
데이터를 정의하는 방법보다 명령어의 순서과 흐름에 중점을 둔 프로그래밍 방법입니다.
절차 지향 프로그래밍의 장점
(1) 수행할 작업을 예상할 수 있어 직관적이다.
(2) 규모가 작을 때는 프로그래밍을 이해하기가 용이하다.
(3) 소프트웨어는 계산 위주이므로 절차 지향 프로그래밍이 적합니다.
절차 지향 프로그래밍의 단점
(1) 소프트웨어의 규모가 커지면서 동작과 분리되어 전 과정에서 서로 복잡하게 얽혀 있는
데이터를 사용하기 때문에 절차 지향 프로그램 방식에는 한계가 있다.
(2) 절차 지향 프로그램은 추후 변경하거나 확장하기 어렵다.
▶ 객체 지향 프로그래밍
이러한 절차 지향 프로그램의 단점을 보완하여 객체 단위로 프로그래밍하며,
객체는 필드(데이터)와 메소드(코드)를 하나로 묶어서 표현하는 객체 지향 프로그래밍을 사용하게 되었습니다.
▶ 객체 지향 프로그래밍의 특징
(1) 캡슐화(정보 은닉)
: 관련된 필드와 메소드를 하나의 캡슐처럼 포장해 세부 내용을 외부에서 할 수 없도록 감춘다.
(2) 상속
: 자녀가 부모 재산을 상속받아 사용하듯이 상위 객체를 상속받은 하위 객체가 상위 객체의 메소드와 필드를 사용 할 수 있다.
→ 상속은 개발된 객체를 재사용하는 방법 중 하나이다.
(3) 다형성 "one interface, multiple implementation"
- 하나의 인터페이스를 사용하여 다양한 구현 방법을 제공한다.
- 하나의 클래스나 함수가 다양하는 동작할 수 있다.
- 대입되는 객체에 따라서 메소드를 다르게 동작하도록 구현, 실행 도중 동일한 이름의 다양한 구현체중에서 메소드를 선택 가능하다.
- 다형성은 동일한 명령을 내리더라도 객체의 종류에 따라 다르게 실행되는 프로그래밍 기법이다.
- 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현한다.
- 메소드 오버로딩(overloading) : 같은 이름이지만 다르게 동작하는 여러 메소드
- 메소드 오버라이딩(overriding) : 슈퍼클래스의 메소드를 서브 클래스마다 다르게 수현
(4) 추상화
- 현실 세계의 객체는 수 많은 상태가 있고 다양한 동작을 하지만, 클래스에 모두 포함하기는 여렵기에
추상화(Abstraction)하는 과정이 필요하다.
- 추상화는 현실 세계의 객체에서 불필요한 속성을 제거하고 중요한 정보만 클래스로 표현하는 일종의
모델링 기법이다.
- 사람마다 추상화하는 기법이 같지 않으므로 각 개발자는 클래스를 다르게 정의할 수 있다.
'JAVA' 카테고리의 다른 글
[JAVA] static과 non-static 차이점 (0) | 2022.03.09 |
---|---|
JAVA 클래스 선언과 생성자, 객체 생성(+getter/setter) (0) | 2022.03.07 |
JAVA 공백제거 방법 3가지 trim, replaceAll, charAt (0) | 2022.03.04 |
JAVA 메소드 오버로딩(overloading)이란? (0) | 2022.03.03 |
JAVA 클래스와 메소드 (0) | 2022.02.28 |
댓글