OOP (Object-Oriented Programming)
OOP (Object-Oriented Programming)
OOP?
- OOP는 객체의 관점에서 프로그래밍 하는 것을 의미한다.
- C언어는 절차 지향 프로그래밍인데, 절차 지향 프로그래밍은 프로세스가 함수 단위로 순서대로 진행되는 것을 말한다.
- OOP는 절차지향에 비해서 사람의 사고방식과 더 가깝다.
- OOP는 객체들의 유기적인 관계를 통해서 프로세스가 진행된다.
- 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말한다.
OOP 특징
1. 캡술화
객체의 필드, 매소드를 하나로 묶고 , 실제 구현 내용을 감추는 것, 외무객체는 내부 구조를 알지 못하며 객체가 재공하는 필드와 메소드만 이용할 수있다.
필드와 메소드를 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다.
여기서 자바는 접근 제한자(public, private, protect,default)를 사용한다.
2. 상속성
상위 객체가 하위 객체에게 자신이 가지고 있는 필드 메소드를 물려주어 재 사용할 수 있도록 해준다.
객체의 재사용은 코드 중복을 줄이고 , 효율성을 높이는데 의의가 있다.
3. 추상화
- 공통의 속성이나 기능을 묶어 이름을 붙이는 것
- 객체 지향적 관점에서 클래스를 정의하는 것을 바로 추상화라고 정의 내릴 수 있다.
- 좀 더 살펴보면 물고기, 사자, 토끼, 뱀이 있을 때 우리는 이것들을 각각의 객체라 하며 이 객체들을 하나로 묶으려 할 때,
만약 동물 또는 생물이라는 어떤 추상적인 객체로 크게 정의한다고 하자. 이때 동물 또는 생물이라고 묶는 것을 추상화라고 한다.
4. 다형성
같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질을 말한다.
코드 측면에서 본다면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다.
자바에서는 다형성을 위해 상위 클래스 또는 인터페이스를 통해 메소드의 Overriding
, Overloading
기능을 통해
타입 변화를 허용한다.
🧾Reference