Ruby - Object oriented programming

Minsoo·2021년 9월 22일
0

Ruby

목록 보기
5/8
post-thumbnail

1. Object oriented programming

객체 지향 프로그래밍
모듈을 통해 복잡한 코드를 단순화시킬 수 있었다 like 수납공간. 그러한 연장선상에서 진전된 개념이 바로 객체이다. object이다.
Object를 쪼개보면 Class + instance가 있다. 이(사례, 구체적인 예제) 말에 익숙해질 것. !
포유류(클래스)에는 구체적인 예시로 사람(인스턴스), 고양이, 강아지 등이 있다.
클래스는 그룹, 종류, 류라고 한다면 그룹에 속한 구체적 인자들은 인스턴스라는 느낌으로 바라볼 것 ....

1) Obj, class, instance

Object = Class + instance
class: 변수 + 함수 담은 그릇
역시 모듈처럼 일종의 수납공간. 그룹핑. 함수뿐만 아니라 연관된 변수를 그룹핑한 묶음!! class를 그대로 사용하는 경우는 많지않고 대부분 복제해서 무언가를 만든다. 복제해서 만든 것들을 인스턴스라고 한다.
instance: 클래스를 복제해서 만든다! 하나의 클래스를 만들면 그 클래스를 복제한 여러개의 인스턴스를 만들수있고 각각의 인스턴스는 클래스와 똑같은 변수와 함수를 가지고 있다.
그러나 함수는 같지만 인스턴스마다 변수에 담겨있는 값이 다를 수 있다.
그리고 우리는 각각의 인스턴스에 속한 함수를 실행해 일을 하게될 것인데, 실행하는 함수는 함수가 속해있는 인스턴스의 변수를 이용해 일을 처리한다.

  • String이라는 class를 복제한 instance가 된다.
  • name이라는 변수 이름을 통해 String class 복제한 인스턴스를 사용할 수 있다.

2) class와 instance 관계

  • class를 복제한 instance의 함수는 class와 같지만, 변수는 class와 instance마다 다른값이 저장된다. !!!

  • String이라는 하나의 클래스를, 복제한 두개의 인스턴스를 만들어 각각 변수에 담았다. name1변수는 egoing이라는 변수를 가지고 있어 egoing 뒤집은 값 리턴. name2도 마찬가지

  • .reverse()는 문자 연관 함수이기 때문에 reverse라는 함수는 String에 포함되어 있었던 것이다.

    https://ruby-doc.org/core-3.0.2/String.html

  • 루비사용설명서 String문자열에 관련된 객체 설명서

  • 객체 소속된 함수를 메소드라고 부른다.(객체안으로 함수가 사용될 때는 메소드라고 한다.)

왜 객체를 사용해야할까. 어떻게 공부해야할까.

집에 책한권이 있다면 어디에 있어도 상관없지만 양이 늘어 났을 때에는 필요한 책을 그룹핑하여 적재적소에 둘 필요가 있다.
프로그래밍도 마찬가지.
처음부터 이렇게 복잡했던건 아니지만 복잡도가 올라가면서...코드를 정리정돈하는 여러기법들이 생겨났다. 함수, 모듈, 객체지향 등등...
뒤로 갈수록 강력하지만 익히기 어려워지는 건 어쩔수가 없다
정리정돈의 테크닉 정점이라고 생각하면 된다
그러면
어떻게 공부를해야할까
다른 사람이 만든 객체를 사용한다는 객체를 사용한다는 느낌을 가지고 사용할 것.
다른사람이 객체의 형태로 만들어 우리에게 제공하니, 우리는 당연히 객체를 알아야겠지요. 우리가 객체를 만들 필요까지는 없겠지만요.

profile
Hello all 👋🏻 📍London

0개의 댓글