객체지향이란? 왜 객체지향을 사용 하는가?
객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임의 하나
절차지향(C)언어에서는 각 명령어의 실행 순서를 기반으로 바라 보는 시선이었다.
하지만 OOP는 데이터와 이를 처리하는 루틴들을 하나의 "독립된 객체"로 바라 보는 시선이다.
이를 통해서 큰 프로젝트에 많이 사용된다. 그 이유는 재사용성의 증가이다.
기존에 만들었던 내용을 쉽게 상속, 다형성 등을 이용해서 재사용 가능하다.
또한 개발자의 실수로 인한 취약점을 줄여준다. 해당 내용이 왜 재사용과 관련이 있을까?
그 이유는 개발자가 급하게 만들면서 코드에 오류가 발생 할수 있다. 이럴 경우 새로운 패치를 해야하고
손실을 가져온다. 하지만 생성자, 소멸자, 접근제어[Public, Private, Protected] 와 같은 내용은 이러한 오류를 잡아준다.
이 외에도 코드를 직관적으로 파악하는데 도움이 되는 등 많은 이유가 있을 것이다.
출처: https://richong.tistory.com/122 [study]
- 객체지향 특징 4가지
-
추상화 (Abstraction)
-
캡슐화(Encapsulation)
-
상속(Inheritance)
-
다형성(Polymorphism)
1. 추상화
객체에서 공통된 속성과 행위를 추출하는 것을 추상화(Abstraction)라고 한다.
추상클래스
추상클래스는 미완성 설계도에 비유할 수 있다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 새로운 클래스를 작성할 때 아무 것도 없는 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나을것이다.
2. 캡슐화(Encapsulation)
캡슐화는 프로그램의 세부 구현을 외부로 드러나지 않도록 특정 모듈(클래스) 내부로 감추는 것이다.
* 접근제어자public > protected > default > private접근제어자를 사용하는 이유
-
외부로부터 데이터를 보호하기 위해서
-
외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서
3. 상속
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 보다 적은 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다.
4. 다형성
-
'다양한 형태로 나타날 수 있는 능력'을 뜻한다.
-
조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있다.
-
같은 이름의 메소드를 여러개 정의 (오버로딩)
오버로딩의 장점 -
하나의 이름으로 정의함으로써 하나의 이름만 기억하면 되므로 기억하기도 쉽고 같은 기능을 한다는 것을 쉽게 예측할 수 있다.
-
메서드의 이름을 절약할 수 있다.
'JAVA 공부' 카테고리의 다른 글
음극과 양극의 정의(전자/전류) (0) | 2020.05.07 |
---|---|
200429_필기 (0) | 2020.04.30 |
추상클래스(abstract) (0) | 2020.04.28 |
생성자 (0) | 2020.04.27 |
아스키코드(ASCII CODE) (0) | 2020.04.26 |
댓글