HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
🏪
TS Store
/
🚅
OOP 4대 원칙
🚅

OOP 4대 원칙

Person
완료율%
상태
완료
나의 블로그
Think Sharing (TS)
🌞
OOP 4대 원칙
 

주제

  • OOP 4가지 특성

목차

주제목차내용용어 정리 👊🏻객체 지향의 4가지 특성캡슐화상속추상화다형성➕상속과 다형성의 관계➕오버라이딩과 오버로딩의 구분

내용

 

용어 정리 👊🏻

클래스
  • 객체를 찍어내기 위한 도구 라기 보다는 분류에 대한 개념이다.
  • 추상화를 통해 현실 세계의 대상을 컴퓨터 세계에 옮긴 것으로 집합으로써의 표현한 방식이다.
  • 설계도라고도 불리운다.
객체
  • 컴퓨터 세계로 표현한 클래스가 실제 컴퓨터세계에서 사용되어 질 수 있는 형태이다.
 

객체 지향의 4가지 특성

캡슐화

  • 한 곳에 모아두어서 관리하는 것으로 유지 보수를 편하게 해준다.
  • 상태와 행위를 한곳에 모음으로써 관리하는 데 용이하다라는 특징이 있다.
  • 또한 정보 은닉 기능을 제공하고 있어 외부에서 접근하지 못하도록 제한 할 수 있다. 정보 은닉 에 대한 정도 레벨은
  • public > default > protected > private (범위가 좁아짐)
    • 정보은닉을 제공함으로써 다른 클라이언트에서 변경할 여지조차 주지 않아 변경에 대한 스코프를 짧게 유지할 수 있어 불변 객체의 범를 보장할 수 있다.
    • public
      다 가능
      protected
      클래스, 패키지, 상속
      default
      클래스, 패키지
      private
      클래스
       
 

상속

  • 하위 개념이 상위 개념의 특징을 물려받음으로써 확장하고 재사용하는 의의를 둔 특징이다.
  • 해당 상속을 통해 멤버 변수나 메소드를 그대로 물려받아 사용할 수 있으므로 코드를 재사용할 수 있는 특징을 가지고 있습니다.
  • is - a 라는 관게라고 많이 보시게 될것이지만, is kind of에 더 가깝다.
    • is-a 는 ~은 ~이다 로서 예를 들어 표현하자면 부모님 사이애 나와 동생은 부모님의 특성을 받아 구체화한 클래스로서 “나는 부모님이다” 라고 표현하기에는 부적절 하다 오히려 나는 부모님의 특징을 물려받은 종류라면 더 적절하게 표현할 수 있을 것이다.
 

추상화

  • 관심영역(애플리케이션 경계)에 있는 특성만 가지고 재조합하는 것으로써 모델링 이라고도 불리운다.
  • 비로 한줄의 정의 이지만 해당 특징은 매우 중요하다.
    • why ❗
      • 해당 특성을 이용하지 못하면 현실세계의 대상들을 컴퓨터 세계 로 옮 길 수없다.
      • 유지보수 측면에서 추후에 엄청난 영향이 갈 수 있는 존재이기도 하다.
       

다형성

  • 인터페이스 관점에서 무슨 행동을 한다는 동일성을 보장하면서 실제적인 구현체들에 의해 다양하게 사용되어 질 수 있는 특징을 가진 객체지향의 특징이다.
  • is able to 관계 동일한 행위를 보장할 수 있게 된다.
  • 또한 상속을 통해 상위 개념에서 가지고 있던 메소드를 오버라이드 하여 다른 행위를 기대할 수 있다.
  • ex) 핸드폰의 키패드 자판이 게임에서 방향키 혹은 공격키가 될 수 있는 것을 예시로 들 수 있다.
 

➕상속과 다형성의 관계

  • 상위 클래스의 물려줄 특성이 풍부하면 풍부할 수 록 좋고, 인터페이스는 구현을 강제할 메서드의 개수가 적을 수록 이상적힌 방향이다.
 

➕오버라이딩과 오버로딩의 구분

  • 오버라이딩 : 상위 클래스의 메서드와 같은 시그니처로 메소드 바디를 재정의 하는 것이다. 즉 실제 행위는 다를 수 있다는 뜻이다.
  • 오버로딩 : 같은 메소드이름을 가진 행위를 다른 시그니처로 포현할 수 있게 하는 형태이다. 즉 중복된 이름을 가지지만 행위를 하기 위해 조건(매개변수 개수, 타입)이 다를 수 있다는 것이다.