본문 바로가기
Java

객체지향 프로그래밍(OOP)

by 재성스 2023. 8. 9.
반응형

객체지향 프로그래밍(Object-Oriented Programmin, OOP)

  • 현실 세계를 모델링하는 듯한 방식으로 소프트웨어를 설계 하는 개발 패러다임 
  • 객체지향 프로그래밍은 코드의 재사용성, 유지보수성, 모듈화 등의 장점으로 개발을 보다 효율적으로 도움.

 

 

객체지향 프로그래밍의 핵심 개념

 

1. 클래스(Class)

  • 클래스는 객체를 생성하기 위한 템플릿 또는 설계도라고 표현할 수 있음
  • 클래스는 데이터(속성, 필드)와 메서드를 정의하는 구조체
  • 클래스는 주로 객체를 생성하는데 사용되며, 객체들 간에 공통된 특징을 나타나는데 활용됨.

 

2. 객체(Object)

  • 클래스가 설계도라면 객체는 클래스라는 설계도에 의해  실제로 구현된 하나의 제품이라고 표현할 수 있음
  • 클래스에 선언된 필드와 메서드로 정의된 개념
  • 클래스의 인스턴스가 될 수 있으며, 클래스의 정의를 기반으로 생성됨.
  • 객체와 인스턴스는 종종 같은 의미로써 사용되지만 엄격하게 구분을 하면 객체는 모든 인스턴스를 가리키는 명칭

 

3.상속(Inheritance)

  • 상속은 클래스 간의 계층 구조를 형성하는 개념(조상과 자손의 관계)
  • 하위 클래스(자손)가 상위 클래스(조상)의 특성(속성, 메서드)을 물려받을 수 있음.
  • 상속을 통해 코드의 재사용성을 높이며, 새로운 클래스를 정의할 때 기존 클래스의 특성을 확장할 수 있는 개념

 

4. 다형성(Polymorphism)

  • 다형성은 한가지 역할이 다양한 형태로 나타날 수 있는 능력을 나타냄
  • 다형성은 코드의 재사용성과 확장성을 높이는 도구로 작용하며, 클래스와 메서드의 일관성을 강화하는 역할을 함.

 

5. 캡슐화(Encapulation)

  • 캡슐화는 데이터와 해당 데이터를 다루는 메서드를 하나의 단위로 묶는 개념을 의미함.
  • 외부에서 원치 않는 접근을 차단할 수 있도록 데이터를 은닉하며, 데이터의 일관성과 보안을 유지할 수 있음.

 

반응형

'Java' 카테고리의 다른 글

객체 지향 설계의 기본 :: 역할과 구현의 분리  (0) 2023.09.25
익명 객체(Anonymous Object)  (0) 2023.09.04
추상 클래스(abstract class)  (0) 2023.08.30
클래스와 객체, 변수  (0) 2023.08.28
인스턴스와 변수  (0) 2023.08.09