ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 루비 OOP(객체 지향 프로그래밍과 상속)
    Ruby 2021. 3. 22. 12:37

    아래 내용은 문개키 강의, opentutorials.org과 인썸니아의 루비 강의를 듣고 정리한 것입니다.

    opentutorials.org/course/2834/16590

    insomenia.com/courses/1

     

    1. 객체지향 프로그래밍

    OOP(Object Oriented Programming) 이란 

     

    서로 연관되어 있는 함수와 변수들을 객체로 그룹핑하고, 객체에 이름을 붙이고, 그 안에 있는 함수를 호출하는 방법입니다.

     

    즉, 다른 객체와 분류하고 구분짓는 방법. 복잡성을 낮추는 것인데요,

     

    객체는 여러 정보(변수)를 갖고 있고, 여러 행위(함수/메소드)를 할 수 있습니다.

    이때, 객체를 만드는 방법으로 중복의 제거와 재활용에 기반해 하나의 기준과 그 기준의 적용을 활용합니다.

     

    그 기준이 Class 이며, 그 기준을 적용해 만들어낸 실체가 Instance

     

    즉 클래스가 틀, 인스턴스는 객체, 실체, 변수는 인스턴스의 이름, 메소드(함수)는 동사라고 생각하면 이해하기 쉽습니다.

     

    아래 그림에서 검은별은 클래스이며, 노란별은 그 클래스를 통해 만들어진 인스턴스입니다. 길동, 둘리, 희동은 변수 또는 변수명 즉 각 인스턴스의 이름입니다.

     

     

    객체 지향 프로그래밍에서 인스턴스는 해당 클래스의 구조(원형틀)로 컴퓨터 저장공간(메모리 - 램)에서 할당된(찍어 낸) 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. OOP(Object Oriented Programming)에서 객체는 클래스와 인스턴스를 포함한 개념이다. 위키백과.

    2. 상속

    객체지향프로그래밍에서 상속은 객체들 간의 관계를 구축하는 방법입니다.

     

    자식 클래스는 부모 클래스의 필드나 메소드를 물려받고, 이를 수정할 수도 있으며 동일한 부모 클래스를 상속하는 모든 자식 클래스는 타입 호환이 가능합니다.

     

    루비에서는 자식 클래스는 단 하나의 부모 클래스만 가질 수 있으며, 자식 클래스가 부모 클래스의 메소드를 받아서 사용할 수 있습니다. 또한, 상속받은 메소드를 수정하거나 거부할 수도 있습니다.

     

    상속을 의미하는 기호: <

     

    위 기호로 상속을 사용합니다.

     

    프로젝트를 생성하고 열어보면 이렇게 보드 컨트롤러 클래스는 애플리케이션 컨트롤러 라는 클래스를 상속받고 있습니다. 또 그 클래스 안에 index라는 메소드와 @boards라는 객체를 가지고 있는 것을 볼 수 있습니다.


     

     

Designed by Tistory.