개발 & 데이터베이스/JAVA

객체지향 프로그래밍 OOP 특징, 오버로딩과 오버라이딩

K.두부 2024. 4. 3. 21:47
반응형

1. 객체지향 프로그래밍 OOP (Object-Orientred Programming)

객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식

 

 

📌 객체?

객체(Object) 는 우리 주변에 있는 모든 것 (컴퓨터, 책, 사람, 마우스 등)

자신만의 고유한 특성과 행동을 가지며 다른 객체들에게 행동을 요청하거나 정보를 주고 받는 등 상호작용을 하면서 존재

 

 

  객체지향 프로그래밍 절차지향 프로그래밍
처리방식 문제를 여러 개의 객체로 처리 문제를 여러 개의 함수로 처리
장점 코드 재사용 용이
유지보수가 쉬움
대형프로젝트에 적합
처리 속도 빠름
실행 속도 빠름
단점 처리 속도가 상대적으로 느림
객체가 많으면 용량이 커짐
설계시 많은 시간과 노력이 필요
유지보수가 어려움
대규모 프로젝트에 부적합
JAVA, Pyhon, C# 등 C언어

 

 

2. 객체지향 프로그래밍 특징

 

추상화 (Abstraction)

  • 객체에서 공통된 속성과 행위를 추출하는 기법
  • 실제 존재하는 객체들을 프로그램으로 만들기 위해 공통적인 특성을 파악하고 불필요한 특성을 제거하는 과정을 말함

 

캡슐화 (Encapsulation)

  • 객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 기법

 

상속성 (Inheritance)

  • 상위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하는 것, 코드의 재사용 측면, 계층적인 관계 생성, 유지 보수성 측면에서 중요

 

 

다형성 (Polymorphism)

  • 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것, 대표적으로 오버로딩, 오버라이딩이 있음
  • 상위 클래스의 동작을 하위 클래스에서 다시 정의 (오버라이딩, Overriding) 
  • 하나의 클래스 내에서 이름은 같지만 서로 다르게 동작하는 메서드를 여러 개 만듦 (오버로딩, Overloading) 
반응형