Rubyã§classã䜿ãããªã
ãªããžã§ã¯ãæåã®ããã°ã©ãã³ã°èšèªã«ãšã£ãŠæ¬ ãããªãæŠå¿µã§ãããclassããRubyã§ã¯ã©ã¹ãæ±ãéã«ã¯ã©ã®ããã«æžãã°ããã®ããå®éã®ã³ãŒãã亀ããªãã解説ããŠãããŸãããªããžã§ã¯ãæåã®å€ãã§æ¡çšãããæŠå¿µã«ãclassãšãããã®ããããŸãã
ä»åã¯ããªããžã§ã¯ãæåèšèªã®ã²ãšã€ãšããŠåé¡ãããRubyã«ãããclassã®äœ¿ãæ¹ããå®éã®ã³ãŒããšå
±ã«è§£èª¬ããŠãããŸãã
classãšã¯

ããªããžã§ã¯ãæåããšåŒã°ããããã°ã©ãã³ã°èšèªã«ã€ããŠã®æŠå¿µããããŸãã
ãªããžã§ã¯ãæåãšã¯ãããã°ã©ã ãçŸå®ã®ã¢ãã®ããã«æ§æãããæåã®ããšã§ãããã®ãªããžã§ã¯ãæåã®èšèªãšããŠäœãããããã°ã©ãã³ã°èšèªã«ã¯ãå€ãã®å Žåãã¯ã©ã¹ããšããæ©èœãåãã£ãŠããŸãã
ããã°ã©ãã³ã°èšèªå šè¬ã«ãããclass
å€ãã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã«åãããã¯ã©ã¹ïŒclassïŒããšããæŠå¿µã«ã€ããŠç޹ä»ããŸãã
ã¯ã©ã¹ïŒclassïŒãšã¯ã端çã«èšãã°ãã¢ãã®èšèšæžãã§ããå ã»ã©ããªããžã§ã¯ãæåãšã¯ãããã°ã©ãã³ã°ãçŸå®ã®ã¢ãã®ããã«æ§æããããã®ã ãšè§£èª¬ããŸããããã¯ã©ã¹ãšã¯ãã®ãã¢ãã®ããã«æ§é ãããéã®ããã¢ãããã®ãã®ã®ãèšèšæžãã«ããããŸãã
èšèãšããŠã¯ã以äžã®ãããªæå³ã®å¯Ÿå¿è¡šã«ãªããŸãã
- ãªããžã§ã¯ã = ã¢ã
- ã¯ã©ã¹ = ã¢ãïŒãªããžã§ã¯ãïŒã®èšèšæž
ãã¯ã©ã¹ãã¯ãã¢ãïŒãªããžã§ã¯ãïŒã®èšèšæžãã§ãããããå€ãã®ããã°ã©ãã³ã°èšèªã«ãããŠãã¢ãïŒãªããžã§ã¯ãïŒããäœæããéã«å¿ èŠãªãã®ãšããŠå®çŸ©ãããããšãå€ãã§ãã
Rubyã«ãããclass
Rubyã¯ãå
šãŠã®å€ã¯ãªããžã§ã¯ãã§ããããšããæ§è³ªããã€èšèªã§ãã
ãã®ããããããªããžã§ã¯ããäœæããããã®ã¯ã©ã¹ãããŸããããªããžã§ã¯ãããšããŠæ±ãããšãåºæ¥ããšããç¹æ§ãæã£ãŠããŸãã
äŸãã°ã以äžã®ãããªã³ãŒãã§ã¯ã©ã¹ããªããžã§ã¯ããšããŠæ±ããããã®ã¯ã©ã¹ãææããã¡ãœããäžèЧããååŸããããšãåºæ¥ãŸãã
Class.methods # ã¯ã©ã¹ãææããã¡ãœããã®äžèЧïŒsymbolé
å圢åŒïŒ
classã®äœãæ¹

ããªããžã§ã¯ãã®èšèšæžãã§ãããã¯ã©ã¹ïŒclassïŒããäœæããã«ã¯ã©ã®ãããªã³ãŒããæžãã°ããã®ã§ããããã
ãŸããå¿
èŠãªã®ã¯ã¯ã©ã¹ã®å®çŸ©ã§ããRubyã§ã¯ä»¥äžã®ãããªææ³ã§ã¯ã©ã¹ãå®çŸ©ããŠãããŸãã
class FooClass # ä»»æã®ã¯ã©ã¹åãã€ãã
# ã¯ã©ã¹ã®äžèº«ãããã«å®çŸ©ãã
end
ããã§ã¯ã©ã¹ãå®çŸ©ããããšãåºæ¥ãŸãããã®ãšãå®çŸ©ããã¯ã©ã¹åã¯ãã¢ã«ãã¡ãããã®å€§æåã§å§ãŸããããèšè¿°ããŸãã
ãã®ãã¯ã©ã¹åã¯å
é 倧æåã§åœåãããèŠåã¯ãå€ãã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã§å
±éããäºé
ã§ãã®ã§ãèŠããŠãããšããã§ãããã
次ã«ã¯ã©ã¹ã®äžèº«ãå®çŸ©ããæ¹æ³ã§ãã
ã¯ã©ã¹ã®äžèº«ã«ã¯æ§ã
ãªèŠçŽ ããããŸããããã£ãšãåºæ¬çãªèŠçŽ ãšããŠãã€ã³ã¹ã¿ã³ã¹å€æ°ããšãã€ã³ã¹ã¿ã³ã¹ã¡ãœãããããããŸãããŸããªããžã§ã¯ãïŒã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒãäœæããéã®åæååŠçãšããŠãinitializeããååšããŸãã
ã€ã³ã¹ã¿ã³ã¹å€æ°ãäœæãã
ã€ã³ã¹ã¿ã³ã¹å€æ°ãäœæããã®ã¯ç°¡åã§ãããããããããã°ã©ããã€ã³ã¹ã¿ã³ã¹å€æ°ãäœæããããšããæé èªäœããRubyã®ã¯ã©ã¹ã«ãããŠã¯å¿
èŠãããŸããã
ã¯ã©ã¹å
ã§äœæããåæååŠçïŒinitializeïŒãã€ã³ã¹ã¿ã³ã¹ã¡ãœããããç¹å®ã®èšæ³ã§äœ¿çšãããã€ã³ã¹ã¿ã³ã¹å€æ°åãèšè¿°ãããšããã®ã€ã³ã¹ã¿ã³ã¹å€æ°ãèªåçã«äœæãããã®ã§ãã
ãã®ããã䜿çšãããã€ã³ã¹ã¿ã³ã¹å€æ°ãããå Žåã¯ãinitializeãã€ã³ã¹ã¿ã³ã¹ã¡ãœããå
ã§æ¬¡ã®èšæ³ã«ãã䜿çšããã€ã³ã¹ã¿ã³ã¹å€æ°ãæå®ããŠãã ããã
@hoo #ãã€ã³ã¹ã¿ã³ã¹å€æ°hooããæå³ãã
initializeã§åæååŠçãäœæãã
ãªããžã§ã¯ãïŒã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒãäœæããéã®åæååŠçã¯æ¬¡ã®ããã«æžããŸãã
class FooClass
def initialize # 以äžåæååŠç
@hoo = 9 # ã€ã³ã¹ã¿ã³ã¹å€æ°hooãæ°å€ã9ãã§åæåãã
end
end
def initialize ããã¯ããã® end ãŸã§ã®äžé£ã®ã²ãšå¡ããåæååŠçïŒinitializeïŒãã«ãªããŸãã
äžèšã³ãŒãã§ã¯ãã€ã³ã¹ã¿ã³ã¹å€æ°hooãæ°å€ã®9ã§åæåããããšããåŠçãinitializeãšããŠå®çŸ©ããŠããŸãã
ããã§ãäžèšFooClassã®ã€ã³ã¹ã¿ã³ã¹ãäœæããå Žåã«ã¯ãFooClassã®ã€ã³ã¹ã¿ã³ã¹å€æ°hooã«9ãèšå®ãããŠããç¶æ
ã«ãªããŸãã
ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããäœæãã
ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ä»¥äžã®ããã«æžããŸãã
class FooClass
def printHoo # 以äžprintHooã¡ãœãã
p â倿°hooã®å€ã¯#{@hoo}ã§ãâ # ã¡ãœããã®å
容ã¯ä»»æ
end
end
æžãæ¹ãšããŠã¯initializeã®ãšããšã»ãŒåæ§ã§ããdefã®ããšã«ã¡ãœããåãæå®ãã以éã§ã¡ãœããã®åŠçå
容ãå®çŸ©ããããšããæµãã¯initializeãšå€ãããŸãããç°ãªãã®ã¯ååã®ã¿ãšããããšã«ãªããŸãã
äžèšã³ãŒãã§ã¯å€æ°hooã®äžèº«ãåºåããããã¡ãœãããå®è£
ããŸããã
classã®ã€ã³ã¹ã¿ã³ã¹ãäœæãã
ãããŸã§ã§ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹å€æ°ãšã€ã³ã¹ã¿ã³ã¹ã¡ãœãããå®çŸ©ããŸãããããããã¯ãŸã ãã¯ã©ã¹ãå®çŸ©ãããã ãã®ç¶æ
ã§ããå®éã«ã¯ã©ã¹ã䜿ãéã¯ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæãããã®ã€ã³ã¹ã¿ã³ã¹ãå©çšããããšã倧åã§ããã€ã³ã¹ã¿ã³ã¹å€æ°ãã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ãäœæããã€ã³ã¹ã¿ã³ã¹ããåŒã³åºãããšãåºæ¥ãã®ã§ãã
ãã®ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒãã®äœæã¯ã©ã®ããã«è¡ãã®ã§ããããã
newã§classã®ã€ã³ã¹ã¿ã³ã¹ãäœæãã
ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããã«ã¯ãnewãã䜿ãå¿
èŠããããŸãã
newã¯å€ãã®ãªããžã§ã¯ãæåã®ããã°ã©ãã³ã°èšèªã«ãããŠãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããã«äœ¿ãããæ§æã§ããrubyã«ãããŠã¯ããã®ãnewããšããæ§æã¯ãã¡ãœããããšããŠæäŸãããŠããŸãã
newã¡ãœãããçšããŠã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããã«ã¯æ¬¡ã®ããã«ã³ãŒããæžããŸãã
class Foo # ã¯ã©ã¹å®çŸ©
def initialize # åæååŠç
@num1 = 10
@num2 = 3
end
def calc # ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã
p ânum1ãšnum2ãè¶³ããš#{@num1 + @num2}ã«ãªããŸãâ
end
fooObject = Foo.new # Fooã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæ
äžèšã³ãŒãã®æåŸã®äžè¡ã§è¡ãããŠããã®ããã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã®äœæãã§ããFooã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãnewã¡ãœããã§äœæãã倿°fooObjectã«ä»£å ¥ããŠããŸãã
äœæããclassã®ã€ã³ã¹ã¿ã³ã¹ãããã€ã³ã¹ã¿ã³ã¹ã¡ãœãããå®è¡ãã
å
ã»ã©äœæããfooObjectãçšããŠè§£èª¬ããŸãã
äœæãããfooObjectã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒãããã¯ã©ã¹å
ã§å®çŸ©ããã€ã³ã¹ã¿ã³ã¹ã¡ãœããïŒcalcã¡ãœããïŒãåŒã³åºãã«ã¯ã次ã®ããã«æžããŸãã
fooObject.calc
ããã ãã§ãäœæãããªããžã§ã¯ãïŒfooObjectïŒããã€ã³ã¹ã¿ã³ã¹ã¡ãœããcalcãåŒã³åºãããšãåºæ¥ãŸããäœæãããªããžã§ã¯ã + ããã + ã€ã³ã¹ã¿ã³ã¹ã¡ãœããåã§ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããåŒã³åºãããšãåºæ¥ããšããããšã§ãã
ãŸãšã
ä»åã¯Rubyã«ãããã¯ã©ã¹ã®åºæ¬ã解説ããŸããã
ã¯ã©ã¹ã«ã€ããŠç¿çãããšãRubyããªããžã§ã¯ãæåã®ããã°ã©ãã³ã°èšèªãšããŠããŸã掻çšããããšãåºæ¥ãããã«ãªããŸããRubyãæ±ããšã³ãžãã¢ãç®æãã®ã§ããã°ã¯ã©ã¹ã«ã€ããŠçè§£ããŠããããšã¯å¿
é äºé
ã§ãã
ãã²ç©æ¥µçã«ã¯ã©ã¹ãå©çšããããã°ã©ã ãæžãããªããžã§ã¯ãæåã®éçºãèªåã®ãã®ã«ããŸãããã
ãã®èšäºã®ããŒã¯ãŒãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
TECH PLAYã§ã¯ãITãšã³ãžãã¢åãã®å匷äŒã»ã€ãã³ãæ å ±ãæäŸããŠããŸããèå³ã®ããæ¹ã¯ãã²ãåå ãã ããã
- ãRubyãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãããã°ã©ãã³ã°ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãåå¿è ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã













