728x90
OOP란
OOP(Object-Oriented Programming)이란 객체 지향 프로그래밍.
OOP 특성 4가지
- 캡슐화
- 추상화
- 다형성
- 상속성
위 특징을 이용해 코드의 재사용성을 증가시키고 유지보수를 쉽게 하기 위해 객체지향적 프로그래밍을 한다.
캡슐화(Encapsulation)
- 객체의 필드와 메소드를 하나로 묶고, 실제 구현 내용을 외부에 감춘다.
- 외부 객체는 제공하는 필드와 메소드만 이용할 수 있다.
- 캡슐화는 외부의 잘못된 사용으로 인해 객체가 침해 당하지 않게 한다.
- 노출을 위해 접근 제한자(Access Modifier)를 사용한다.
추상화(Abstraction)
- 목적과 관련 없는 부분을 제외해서 필요한 부분을 포착한다.
- 객체의 공통된 속성들 중 필요한 부분을 포착해서 클래스로 정의한다.
- 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념으로 다룬다.
다형성(Polymorphism)
- 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.
- 오버라이딩과 오버로딩의 현태로 자주 활용된다.
오버라이딩 - 부모클래스에 메소드와 같은 이름으로 사용되며, 매개변수를 재정의하여 함수를 활용하는 것
오버로딩 - 동일한 이름의 함수명을 여러개로 정의하고 매개변수의 타입과 갯수를 다르게하여 매개변수에 따라 다르게 호출 할 수 있게 하는것
상속성(Inheritance)
- 상위(부모) 클래스의 속성(변수)과 기능(메소드)을 재사용하여 하위(자식) 클래스가 전부 물려 받는 것.
- 물려받는 것 외에 속성과 기능을 추가 할 수 있다.
- 코드의 재사용성과 유지보수를 위해 사용.
728x90
'Java & Spring' 카테고리의 다른 글
[JAVA] Primitive type, Reference type 기본형, 참조형 정리 (0) | 2022.03.30 |
---|---|
[JAVA] Process, Thread 프로세스와 스레드/쓰레드 정리 (0) | 2022.03.29 |
[JAVA] 클래스, 객체, 인스턴스 차이점 (0) | 2022.03.27 |
[JAVA] Access Modifier 접근 제어자 (0) | 2022.03.25 |
[JAVA] Overloading 오버로딩 (0) | 2022.03.24 |