조회 수 1684 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
루비에서 다루는 모든데이터는 오브젝트라고 불립니다.
예약어에서 메소드, 함수, 캐릭터라인 등

1. 클래스

또 비슷한 효과를 내는 오브젝트를 묶은것을 클래스라고 하는데, 예를 들면 화면출력 오브젝트는 그래픽 클래스, 캐릭터라인은 스트링 클래스에 속해있는것 처럼 클래스의 리스트는 알만xp의 도움말인 rgss 레퍼런스에서 열람할수있습니다.
보통 특정 클래스에 속한 오브젝트를 강조하기위해 그 클래스의 인스턴스라고 부르기도 합니다. 

일단 테스트삼아 string 클래스가 어떻게 구성되어있는지 봅시다.
 본문 전부를 불러오면

이렇게 됩니다.

String

캐릭터 라인 클래스. 임의의 길이가 바이트열을 취급하는 것이 � . 캐릭터 라인 리터럴을 참조해 주세요.

String 클래스는 자신을 바이트열로서 취급합니다. 멀티 바이트 캐릭터 라인으로부터 1 문자씩 꺼내고 싶은 경우는 scan(/. /) 등을 사용합니다.

슈퍼 클래스

#슈퍼 클래스는 그 클래스의 상위 클래스정도로 생각하면 됩니다.

인클루드 하고 있는 모듈

 

#이것들은 이 string 클래스 안에 들어있는 모듈을 말합니다. 모듈은 메서드의 모음으로 하나의 시스템을 작용을 합니다.

#이제 메서드의 목록입니다.

메소드

 
empty?

캐릭터 라인이 하늘 (즉 길이 0) 때, 진을 돌려줍니다.

 
length
size

캐릭터 라인의 바이트수를 돌려줍니다. 


upcase
upcase!

캐릭터 라인중의 알파벳 소문자를 모두 대문자에 옮겨놓습니다.

upcase 는 치환 후의 캐릭터 라인을 생성해 돌려줍니다. upcase! (은)는 self 를 변경해 돌려줍니다만, 치환이 오코시 이거 참 없었던 경우는 nil 를 돌려줍니다.




원래는 더 복잡한 내용이 더있지만 지금 이해할수있는 메서드는 이정도인것같군요. 여기서 간단한걸 뽑아서 한번 주물럭거려봅시다.

a = "Ruby"

p a.size        # => 4

size 메서드는 캐릭터라인의 바이트수를 돌려주는 메서드입니다. 영문자인 반각문자는 1문자에 1바이트이니 영문자 4개는 4바이트가 되겠지요. 따라서 size  메서드가 4를 출력해줍니다. 



2. 슈퍼 클래스

루비에서 모든것은 오브젝트라고 했었는데, 정수는 fixnum의 인스턴스입니다.  인스턴스는 그 클래스의 전용 오브젝트 라고 했었지요.

fixnum의 메서드 리스트를 보면 메서드가 두개뿐입니다.  아니 정수를 관리하는 인스턴스인데 메서드 두개로 어떻게 관리하느냐 궁금한 분들도 있을지 모르겠습니다. 

일단 fixnum을 파해치기위해 fixnum의 슈퍼클래스인 Integer로 가봅시다.
Integer 클래스에는 chr이라는 메서드가 있습니다. 이것은 문자 코드에 대응하는 1 바이트의 캐릭터 라인을 돌려줍니다. 
예를 들어 65. chr 는 "A" 를 돌려줍니다. 
정수는 0 에서 255 의 범위내가 아니면 되지 않습니다. 범위외의 정수에대한 호출은 에러가 나게됩니다 

a = 65

p a.chr         # => "A"

정수는 fixnum 클래스의 인스턴스인데 integer 클래스의 인스턴스인 chr 을 불러와도 에러가 나지않는 이유는 상위 클래스는 하위클래스의 인스턴스를 계승할수있습니다. 따라서 저런 식이 성립되는것이지요.  

계승이라고 하는것은 클래스에 다른 새로운 클래스를 만드는것입니다. 원래있던 클래스를 슈퍼클래스, 새로만들어진 클래스를 서브클래스 라고합니다. 따라서 fixnum 클래스는  integer 의 서브 클래스가 되는것입니다. 
 fixnum 클래스는 integer 클래스의 메서드와 또 반대의 경우도 호출할수있고 또 integer 클래스의 슈퍼클래스인 Numeric 클래스도, 
또 그 슈퍼클래스인 Object 클래스도 fixnum 클래스의 메서드를 호출할수있습니다.

왜 이렇게 클래스를 어차피 분할 할거면서 공유해 놓았냐고 물으신다면 예를 하나 들어드릴수있겠습니다.
예를 들면 부동소수점수는 Float 클래스의 인스턴스에 속합니다. Float 클래스의 슈퍼클래스는 Numeric 클래스입니다. 또 정수는 fixnum 클래스의 인스턴스입니다.  fixnum 클래스는 Numeric 클래스의 서브클래스고요.
정수와 부동소수점수는 수를 표기한다는것으로 근본적인면에서는 비슷하지만 사실상 완전 다른 개념입니다.  만약 모두 완전 다른 클래스로 넣게된다면, 정수와 부동소수점수의 공통점 또한 소멸시키는것으로, 같은 내용을 다른클래스에 두번 적어야하는 상황이 벌어질수도 있기 때문에 그 같은내용을 Numeric 클래스로 정의 하는걸로 두번 일하지않아도 되는겁니다.
?

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7877 Votes1
    read more
  2. [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에.

    Date2018.09.10 Category초급강의실 By케이디 Views2761 Votes0
    Read More
  3. RPG Maker MV에서 도트 느낌의 폰트 사용하기

    Date2018.07.15 Category초급강의실 By러닝은빛 Views5000 Votes1
    Read More
  4. [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! "

    Date2018.07.01 Category초급강의실 By수성의물 Views1895 Votes0
    Read More
  5. [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약

    Date2018.04.25 Category초급강의실 By이니군 Views850 Votes0
    Read More
  6. [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠

    Date2018.04.25 Category초급강의실 By이니군 Views913 Votes0
    Read More
  7. [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기

    Date2018.04.24 Category초급강의실 By이니군 Views2223 Votes1
    Read More
  8. 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정.

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1611 Votes0
    Read More
  9. 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용)

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1443 Votes0
    Read More
  10. [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인)

    Date2017.09.11 Category초급강의실 By이니군 Views1325 Votes0
    Read More
  11. RPG MAKER MV Tool Program-MADO 설치 및 적용기

    Date2017.09.08 Category초급강의실 By이니군 Views2536 Votes0
    Read More
  12. 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정)

    Date2017.08.28 Category초급강의실 By이니군 Views1708 Votes0
    Read More
  13. [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법

    Date2017.07.16 Category고급강의실 By러닝은빛 Views3874 Votes2
    Read More
  14. 네코플에서 VXA 선택지 잘리는 버그 해결하는법

    Date2017.06.22 Category중급강의실 By심심치 Views1160 Votes2
    Read More
  15. 변수를 이용한 식물 재배

    Date2017.05.28 Category초급강의실 ByMoonJ Views3393 Votes2
    Read More
  16. 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기!

    Date2017.01.26 Category초급강의실 By이제리아 Views4530 Votes3
    Read More
  17. RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?-

    Date2016.10.31 Category중급강의실 ByRPG란무엇인가? Views2431 Votes0
    Read More
  18. 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편

    Date2016.04.17 Category중급강의실 By양갱님 Views36387 Votes10
    Read More
  19. 게임의 퀼리티를 높이자! 3편-맵배치

    Date2016.04.08 Category초급강의실 Byifeve Views5324 Votes2
    Read More
  20. Input 객체의 키코드 확장

    Date2016.04.05 Category초급강의실 By러닝은빛 Views1501 Votes0
    Read More
  21. 초보가쓰는 초보용 Rpg게임 만들기 (xp)

    Date2016.03.13 Category초급강의실 ByMarine Views6395 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)