Java

OOPS의 개념

seonggu 2024. 3. 8. 20:19

OOPS의 개념

객체 지향 프로그래밍은 Inheritance(상속). data binding (데이터 바인딩), polymorphism(다형성) 같은 많은 개념을 제공하는 패러다임이다.


🔴 OOPs(Object oriented programming system, 객체 지향 프로그래밍 시스템)
객체는 펜, 의자, 탁자 같은 실제 단어적 실체(entity)를 의미한다.
객체 지향 프로그래밍은 클래스와 객체를 사용하는 프로그래밍을 설계하기 위한 방법론 혹은 패러다임이다.
아래의 일부 개념들은 소프트웨어 개발과 유지를 간소하게 한다.



🔴특징

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

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

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



🔴 Object ( 객체 )
모든 독립된 것은 객체로 알려진 상태와 동작을 가진다.
예를 들면 의자, 펜, 탁자, 열쇠 등등 이것은 물리적이고 논리적일 수 있다.


🔴 Class ( 클래스 )
객체들의 집합을 클래스라함. 이것은 논리적 실체이다.


🔴Inheritanc ( 상속 )
부모 객체의 모든 작동 방식과 속성들을 하나의 객체가 획등하는 것이 상속이다.
이것은 재사용 가능한 코드를 제공하고 런타임 다형성을 달성하기 위해 사용한다.


🔴 Polymorphism ( 다형성 )
하나의 작업(task)을 다양한 방법으로 수행할 때 이것을 다형성이라고 한다.
-> 동일한 이름의 함수 혹은 변수가 상황에 따라 다른 동작을 할 수 있음을 뜻함.

자바에서는 다형성을 위해 오버로딩, 오버라이딩을 할 수 있음.


🔴 Abstraction ( 추상 )
내부의 세부 코드를 숨기고, 기능만 보여주는 것을 추상이라고 한다.
자바에서는 추상을 위해 추상 클래스와 상속 클래스를 사용할 수 있다.


🔴Encapsulation ( 캡슐화 )
코드와 데이터를 한 싱글 유닛 안에 같이 묶는 것을 캡슐화라고 한다.
자바 클래스는 캡슐화의 예시이다.
또한, 모든 데이터 멤버가 개별로 여기에 포함되어 있기 때문에 Java에서 빈(bean)은 완전히 캡슐화 된 클래스이다.




🔴Advantage of OOPs over Procedure-oriented programming language
절차 지향 프로그래밍 언어를 넘어서는 객체 지향 프로그래밍의 장점

1) 만약 코드가 프로젝트 사이즈만큼 커진다면, 이것을 관리하는 일은 쉬운 것이 아니다.
하지만 객체지향 프로그래밍 시스템은 절차 지향 프로그래밍 언어보다 개발과 유지를 더 쉽게 만든다.

2) 글로벌 데이터는 어디서나 접속될 수 있다. OOPs는 데이터 바인딩을 제공하지만 절차지향 프로그래밍은 그렇지 않다.

3) OOPs는 실제-세계 이벤트를 더 효과적으로 시뮬레이션 할 수 있는 능력을 제공한다.
우리가 객체지향 프로그래밍을 사용한다면, 실제 세계의 문제의 해결책을 제공할 수 있다.





참고자료 : https://tworab.tistory.com/14