Java/study

객체 지향 프로그래밍(OOP)

Clearing 2022. 6. 15. 21:52
728x90

객체지향 프로그래밍(OOP)에는 4가지 특징이 있다.

 

1. 추상화

추상화를 어떻게 진행하느냐에 따라 앞으로의 객체를 정의할 수 있게 되며 설계라고도 할 수 있다.

예를 들면 우리가 자동차라라고 말을 할 때 누군가는 승용차를

누군가는 버스를, 스포츠카를, SUV를 떠올릴 수 있을 것이다.

이것들은 바퀴가 달려있고 창문이 있으며 엔진이 달려있다. 이런 공통적인 부분들을 모아

Car라는 class로 관리할 수 있을 것이다. 이렇게 데이터의 의미나 수행과정이 비슷한 개념들을 묶어

정의(선언)하는 것을 추상화라고 한다.

 

2. 캡슐화

자바에서 우리가 Scanner나 Random과 같은 객체를 이용할 때  구성은 모르지만 사용법만 알아도 사용이 가능하다.

캡슐화는 클래스 내부의 변수와 메서드를 하나로 묶어주는 특징을 말한다.

객체가 정해진 메서드를 통해서만 접근을 하도록 유도하여 클래스 내부의 정보를 은닉화하는 효과가 있다.

이런 식으로 클래스들이 캡슐화되어 있다면 우리가 프로젝트를 진행할 때 기존에 완성되어있는

코드와 내가 만든 코드를 합쳐 개발기간을 단축할 수 있으며 그에 따라 에러에 할애하게 되는 시간도 줄어들게 되며

개발비용이 줄어드는 등의 장점이 있다.

 

3. 상속

상속이란, 기존의 존재하던 코드를 부모로 하위의 자식 객체(클래스)를 생성해낼 때

부모 클래스를 "상속" 받아서 만든다고 한다. 생성된 자식 클래스들은 부모 클래스의 특성과 기능을 물려받는다.

즉, 부모 클래스는 하위(자식) 코드들의 공통분모가 된다. 하나의 부모 클래스가 여러 자식 클래스를 가지는 것은 가능하지만 하나의 자식 클래스가 여러 부모 클래스를 상속받을 수는 없다. 이러한 상속의 특징을 통해 개발자들은 비효율적인 코드의 중복을 피할 수 있으며 유지보수의 편리성도 얻을 수 있다.

 

4. 다형성

다형성이란, 하나의 메서드가 여러 가지 동작을 수행할 수 있는 것을 의미한다. 소리 내기()라는 메서드가 존재할 때

강아지. 소리내기() -> 멍멍, 고양이. 소리내기() -> 야옹 과 같이 같은 함수를 실행하더라도 다른 결과를 볼 수 있다.

함수에게 주어가 생겼기 때문이며 이를 다형성이 구현(실현)되었다고 한다.

 

728x90

'Java > study' 카테고리의 다른 글

오버로딩(Overloading)과 오버라이딩(Overriding)  (0) 2022.06.20
클래스와 객체  (0) 2022.06.16
함수(function,method)  (0) 2022.06.14
이진탐색(이분검색)  (0) 2022.06.13
최대값 찾기  (0) 2022.06.13