루비(Ruby)언어 정리
소스코드를 통하여 주요한 기능만 확인해보고 넘어간다.
클래스와 객체
class Car
@@run_car = 0 # 클래스 변수 / static 변수
attr_reader :pos # 읽기 전용 속성(attribute)
attr_writer :pos # 쓰기 전용 속성
attr_accessor :light # 읽기/쓰기 가능 속성
def initialize(color) # 생성자
@color = color # @는 멤버변수 없는 것은 지역변수
end
def get_color
return @color
end
def get_run_car
return @@run_car
end
def Car.run(num) # 클래스 메소드 | static 함수
@@run_car += num
end
def id_car() # id_car값 반환 접근자 메소드
@id_car
end
def id_car=(id_car) # pos값 쓰기 접근자 메소드
@id_car = id_car
end
protected # 메소드 공개 범위 (JAVA와 같음)
def alaram
end
private # 메소드 공개 범위 (JAVA와 같음)
def check
end
end
class SuperCar < Car # 상속
def initialize(color)
super(color) # 부모 생성자 호출
end
def get_color
return "red"
end
end
supercar = SuperCar.new("blue") # 인스턴스 생성
Car.run(100) # 클래스 메소드 호출
모듈
module Computer
def Computer.buy(com)
puts com + " buy"
end
class CPU
def CPU.run
puts cpu + " run"
end
end
end
include "computer.pb" # 외부 루비 파일 입포트
Computer.buy "Alpha"
Computer::CPU.run # module의 class는 ::을 이용하여 접근한다.
모듈 혼합
module LeftClick
def lclick
puts "Left Clicked"
end
end
module RightClick
def rclick
puts "Right Clicked"
end
end
class Mouse
include LeftClick
include RightClick
end
mouse = Mouse.new() # Mouse는 LeftClick, RightClick 2가지 기능이 혼합된다. (다중상속), Module은 인스턴스 생성이 불가하나 Mouse는 class이므로 가능