개발/자바

객체지향 프로그래밍

시간의 효율화 2022. 4. 25. 22:39

객체지향 프로그래밍

- "프로그램에서 사용되는 객체를 생성하고, 각 객체에 포함된 데이터와 기능을 상호 호출함으로써 프로그램을 구성하는 방식."

 

출처: Do it! 자바 완전 정복

 

- 클래스와 객체의 개념에 의존하는 프로그래밍 패러다임

- 프로그램을 간단하고 재사용 가능한 코드 (클래스)로 구성하기 위해 사용되는 패러다임. 

 

출처: https://www.educative.io/blog/object-oriented-programming

 

What is object-oriented programming? OOP explained in depth

Learn what is OOP, the building blocks of an OOP program, the four principles that make up OOP, and more.

www.educative.io

 

객체지향의 장점

1. 복잡한 것을 간단하고 재사용 가능한 구조로 모델

2. 재사용 가능한 OOP 객체들은 프로그램 전반적으로 사용 가능함. 

3. 다형성을 통해 class-specific behavior 허용

4. 캡슐화를 통화 정보 보호.

 

객체지향의 4대 기둥

1. 상속

- 자식 클래스는 부모 클래스로부터 자료와 행위를 상속 받음.

- 재사용성 지원

 

2. 캡슐화

- 객체에 정보 저장, 선택적으로 정보 노출

- 예) public, private

- 장점: 보안 강화, 개발자가 실수로 무언가를 변경하는 것을 방지, 코드 지적재산 보호 (퍼블릭 메서드만 외부 개발자가 접근 가능), 복잡성 숨김

 

3. 추상화

- 객체를 접근하기 위해 high level public 메서드만 노출

- 복잡성을 표현하기 위해 간단한 클래스 사용

- 사용자로부터 복잡한 디테일 숨김, 운전자는 악셀, 핸들, 브레이크만 알면 되지, 엔진 내부 사양까지 몰라도 됨. 

 

4. 다형성

- 다양한 메서드가 같은 task 수행 가능

- 행위를 공유하도록 하기 위해 객체 설계

- 오버로딩, 오버라이딩