객체지향 3요소

junbeom·2023년 3월 27일
0

CS정리

목록 보기
1/1

캡슐화

  • 내부적으로 기능을 어떻게 구현하는지 감추는 것
  • 캡슐화를 통해 객체간의 의존성을 관리할 수 있고 이를 통해 결합도가 낮은 객체를 만들 수 있습니다.
  • 그 결과 유지보수가 쉬운 코드를 만들 수 있습니다.
  • (객체를 수정할 일이 있을때 다른 객체에 영향을 주지 않으니 그것만 변경하면 되서 쉬운 유지보수가 가능한것입니다.)
  • 대표적인 예로 private 과 같은 접근제어자를 활용해 접근을 제한하는 방법이 있습니다.

상속

  • 부모 클래스의 변수와 메소드를 자식 클래스가 물려 받아서 쓸 수 있는 것.
  • 기능을 쉽게 가져다 쓸 수 있고 불필요한 코드를 줄일 수 있어 보다 효율적인 코딩이 가능합니다.

다형성

  • 같은 코드가 다른 행위를 하는 것을 말한다.

( 다형성은 개념이 좀 모호한 것 같습니다. 예시를 통해 먼저 알아보겠습니다.)

예시1)

  • 탱크 게임이 있습니다. 거기에는 tank 라는 객체가 있고 이를 상속받는 주인공tank와 적tank 객체가 있습니다.
  • 이들은 모두 tank 객체의 attack()이라는 메서드를 상속받아서 구현하는데 서로 다르게 구현합니다 주인공tank의 attack()은 전의 위치를 입력하면 일정 데미지를 주는 로직이고 적tank는 주인공 tank가 일정 범위에 들어왔을때 일정 시간 간격으로 특정 데미지를 주는 형식입니다.

예시2)

  • 계산기 기능 중 plus()라는 더하기 메서드가 있습니다. plus(1,2)처럼 두 개의 매개변수가 들어가서 계산을 수행할 수도 있고 plus(1,2,3) 처럼 3가지 매개변수가 들어가서 계산을 수행할 수도 있습니다.

첫번째 예시는 Overriding의 개념입니다.

상속받은 메소드 내의 로직을 새롭게 정의하는 것을 말합니다. 이처럼 같은 이름이지만 구현하는 클래스마다 다른 역할을 하는 것입니다.

두번째 예시는 Overloading의 개녑입니다.

오버로딩은 하나의 클래스에서 같은 이름의 메소드를을 여러 개 가질 수 있게 하는 것이지요.

다양한 매개변수를 처리할 수 있게 해주기 위함입니다.

0개의 댓글