본문 바로가기

두두의 IT

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

728x90

객체지향 프로그래밍 

- 코드를 정리하는 방법

- 데이터에 대한 생각

- 구조 방식

 

  • 프로그램에는 객체(object)가 필요함
  • 각 객체는 같은 속성을 갖지만 각각 다른 데이터를 가짐
  • 새로운 속성을 추가하거나, 오타를 발견한다거나, 변경을 하기 위해 데이터만 넣으면 적용해주는 함수인 Class를 사용함
  • 메서드는 클래스 내에 있는 함수임
  • constructor, init 메서드는 나의 클래스가 어떤 속성을 갖게될 것인지 구성할지 정할 수 있고 함수처럼 인수를 받을 수 있음
  • this, self : 클래스 내의 속성 및 메서드를 지칭하는 방법
  • 기본 메서드 이외에도 사용자 정의 메서드를 생성할 수 있음
  • 상속은 자녀 클래스가 부모 클래스의 속성을 가지는 것임. 코드 중복을 줄이고, 코드를 재사용 가능한 조각으로 나눌 수 있음.
  • 아기, 청소년, 어른은 인간이라는 공통적인 속성을 가지고 있으므로 인간 클래스를 상속받으며 아기, 청소년 특성에 맞춰 확장이 가능함. 아기에서 constructor 메서드를 호출하려면 super 메소드를 호출해야 함

 

추가적인 OOP 지식

https://jyj98020.tistory.com/299

 

[OOP] 접근지정자(Access Specifier)

접근지정자(Access Specifier) : 클래스나 멤버들을 다른 클래스에서 접근해도 되는지 여부를 선언하는 것 public 패키지와 상관없이 모든 클래스들이 접근 가능한 것 슈퍼 클래스의 public 멤버 : 서브

jyj98020.tistory.com

https://jyj98020.tistory.com/301

 

[OOP] 추상클래스와 인터페이스

추상 클래스(Abstract Class) 추상 메서드를 가지며, Abstract로 선언된 클래스. 최소 한 개의 추상메소드를 포함하는 경우 반드시 추상 클래스로 선언해야 함 추상 메소드가 하나라도 없을 때 Abstract

jyj98020.tistory.com

static methods

 

 

[4가지 핵심 개념]

1. Encapsulation(캡슐화)

  • 데이터, 데이터를 활용하는 함수를 캡슐(Class) 또는 컨테이너 안에 두는 것
  • 표시할 클래스의 속성과 숨길 속성을 선택할 수 있음
  • 어떻게 클래스 정보에 접근 또는 수정하는지를 결정하는 권한을 제공함 

2. Inheritance (상속)

  • 코드를 더 작은 단위(Class 등)로 나누고 재사용할 수 있음
  • A,B의 공통되는 속성을 C 클래스로 이동시킨 후 C의 속성을 A,B가 상속하는 것
  • 자식(A,B) 클래스는 C(부모)클래스의 모든 속성과 메소드를 상속받을 수 있음
  • 분할, 정복이 가능함.

3. Abstraction (추상화)

  • 구현 세부 정보를 숨기는 일반 인터페이스를 지정하는 행위_C++의 아버지
  • 예를 들어, 우리는 기어 작동법, 브레이크, 엑셀만 알면 자동차를 운전할 수 있다. 하지만, 기어가 어떻게 만들어졌는지는 모른다. 구현 세부 내용은 숨기고 그것을 모은 인터페이스를 사용하는 것이 추상화임
  • 어떤 메소드의 내용을 변경해야 될 때 인터페이스만 변경하면 그 인터페이스를 사용하는 누구도 내용을 변경할 필요가 없음

4. Polymorphism (다형성)

  • 메소드 오버라이딩 : 자식 클래스만의 부모클래스 메소드를 재정의 하는 것. 단, 부모와 자식의 반환 타입은 같아야 함 (ex, String) 다른 규칙도 있음..

'두두의 IT' 카테고리의 다른 글

[Kotlin] data Class  (0) 2022.04.12
[Kotlin] Modifiers  (0) 2022.04.12
[Kotlin] 개념, Java와의 호환, 장점, 활용 방법, 만든 이유  (0) 2022.04.11
[Kotlin] in/out  (0) 2022.04.11
[Kotlin] operator  (0) 2022.04.11