프로그래밍/JAVA

[ JAVA ] 객체지향 프로그래밍이란?

리신 2022. 9. 15. 19:10
반응형

객체지향 프로그래밍(Object-Oriented Programming)이란?

프로그램을 설계하는 개념이자 방법론이다.

줄여서 OOP라 부르며, 단어 뜻 그대로 프로그램(실제세계)를 객체(사물)라는 기본 단위로 나누고 이 객체들간의 상호작용을 기본개념으로 한다.

 

 

1. 객체지향 언어의 주요 특징

1. 코드의 재사용성이 높다.
    새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.

2. 코드의 관리가 용이하다.
    코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.

3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
     제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,
     코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다.

 

 

2. 객체지향  VS 절차지향

비교 절차지향 언어 객체지향 언어
장점 - 처리속도가 빠름
- 초기 프로그래밍 언어로 컴퓨터의 처리구조와 비슷해 실행속도가 빠름
- 코드 재사용성이 용이
- 절차지향 보다 개발(코딩)이 간단함
- 유지보수가 쉬움
- 대규모 프로젝트에 적합
단점 - 유지보수가 어려움
- 대규모 프로젝트에 부적합함
- 처리속도가 절차지향보다 느림
- 객체에 따른 용량 증가
- 설계단계에 시간이 많이 소요

 

 

3. 객체지향의 특징 4가지 (추상화,캡슐화,상속,다형성)

1. 추상화

클래스에서 필요한 공통적인 기능과 속성을 묶어 이름을 부여하는 것을 의미한다.

객체지향적 관점에서 클래스를 정의하는 것이 바로 추상화라고 볼 수 있다.

 

2. 캡슐화

연관있는 속성과 기능을 클래스로 묶는 잡업을 말한다.

은닉성을 통해 클래스에 담는 중요한 데이터나 기능을 외부에서 접근하지 못하게 할 수 있다.

자바 언어는 캡슐화된 멤버를 노출시킬 것인지 숨길 것인지를 결정하기 위해 접근 제한자를 사용한다. (private)

 

3. 상속

부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고 기능의 일부분을 변경해야 할 경우 상속받은 자식클래스에서 해당 기능만 다시 수정(정의)하여 사용할 수 있게 하는 것이다.

 

4. 다형성

다형성은 하나의 변수명, 함수가 상황에 따라 기능을 확장하거나 변경할 수 있는 것을 의미한다.

자바에서는 오버라이딩과 오버로딩의 형태로 자주 활용하게 되며 위에서 말한 상속에서 부모클래스의 기능을 자식클래스에 맞는 형태로 재수정하는 것 역시 오버로딩을 활용한 방법이다.

 

오버라이딩 : 상속 관계에 있는 클래스 간에 같은 이름의 메소드를 정의하는 기술이다.

오버로딩 : 같은 메소드라도 매개변수만 다르면 얼마든지 정의하고 사용할 수 있다.

 

반응형

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

[ JAVA ] Char를 Int로 변환하기  (0) 2022.09.22
[ JAVA ] 클래스와 객체  (0) 2022.09.15
[ JAVA ] 다차원 배열이란?  (0) 2022.09.15
[ JAVA ] 변수의 타입  (0) 2022.08.24
[ JAVA ] 변수와 상수  (0) 2022.08.24