반응형
객체지향 프로그래밍(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 |