객체 지향 프로그래밍

객체 지향 프로그래밍이란?

  • Object Oriented Programming
  • 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
더보기

절차적 프로그래밍 : 객체 지향 전의 패러다임으로 main에서 모든 로직을 한번에 실행했습니다.

  • 길고 복잡하며 협업이 힘듭니다
  • IT기술의 발전과 함께 객체지향 패러다임은 필연적으로 만들어졌다고 볼 수 있습니다.
  • 특징(APIE)
    • 추상화(Abstraction) : 객체 모델링시 SW 목적에 맞는 필요한 속성을 추출하는 작업입니다.
    • 다형성(Polymorphism) : 한 객체를 여러 관점에서 보는 작업입니다. (ex. 사람 = 동물 = 포유류 ...)
    • 상송(Inheritance) : 클래스간 정보를 상속을 통해 이동시킬 수 있습니다
    • 캡슐화(Encapsulation) : 객체 : 캡슐 = 1:1 , 정보를 은닉하고 목적에 맞는 인스턴스만 제공합니다.
  • 장점
    1. 모듈화된 프로그래밍이 가능하다.
    2. 재사용성이 높다.
    3. 유지 보수가 용이하다.
    4. 협업이 용이하다.

캡슐화를 통한 정보 은닉

  • 객체의 속성과 행위를 하나로 묶고 실제 구현 내용 일부를 외부로부터 감추어 은닉할 수 있습니다.
  • 이를 위해 접근 제한자를 사용하게됩니다.

 

  • 접근 제한자
    • public : 모든 위치에서 접근 가능 ( 클래승 외부 사용 가능)
    • protected : 같은 패키지에서만 접근 가능 ( + 다른 패키지인데 상속관계인경우도 접근 가능 )
    • default : 같은 패키지에서만 접근 가능
    • private : 자신의 클래스에서만 접근 가능
더보기
  • 그 외 제한자
    • static : 클래스 레벨의 요소 설정
    • final : 요소를 더 이상 수정 할 수 없게 함
    • abstract : 추상 메서드 및 추상 클래스 작성
수식어 클래스 내부 동일 패키지 ( 다른 패키지의 )
하위 클래스
다른 패키지
private o      
default o o    
protected o o o  
public o o o o

 


연관 포스팅 주제

1. 디자인 패턴

 

'Java' 카테고리의 다른 글

[JAVA] Builder 패턴을 알아보자  (0) 2024.03.24
[JAVA] 팩토리 메서드 패턴  (0) 2024.03.21
[Java] ConcurrentHashMap사용하기  (0) 2023.12.24
[Java] CompletableFuture 사용하기  (0) 2023.12.24
[Java] 디자인 패턴과 싱글톤  (0) 2023.09.06