ackintosh

https://ackintosh.github.io/about/ に引っ越しました ☺

Ruby基礎

Ruby始めました。
Hello, Ruby !!

クラス

・クラス名は必ず大文字で始める
・オブジェクトの外部からインスタンス変数に直でアクセスすることはできない
カプセル化が強制されている
→外部アクセスが必要なものだけattr_accessor等を定義する

class Hoge
  # コンストラクタ
  def initialize(args = "hoge")
    # インスタンス変数にセット
    @var = args
  end

  # インスタンスメソッド定義
  def hello
    print "Hello, ", @var, " ! \n"
  end

  =begin
  アクセサメソッド定義
  =end
  # setter 2種類の書き方
  attr_reader :var, :var2 # 複数はカンマ区切り
  def var
    return @var
  end

  # getter 2種類の書き方
  attr_writer :var
  def var=(value)
    @var = value
  end

  # setter と getter を同時に定義
  attr_accessor :var
  
  # クラスメソッド
  # def クラス名.メソッド名 〜 end
  # def self.メソッド名 〜 end
  def Hoge.hello(name)  # def self.hello(name)
    print name, " said hello. \n"
  end
end

・アクセス修飾子
public (デフォルト)
private
protected

class AccTest
  def pub
    puts "pub is a public method."
  end
  public :pub  # pubメソッドをpublicに設定

  def priv
    puts "priv is a private method."
  end
  private :priv  # privメソッドをprivateに設定
end

・複数のメソッドのアクセス修飾子をまとめて設定する

class AccTest
  public # これ以降に定義したメソッドはpublicになる
  def pub
    puts "pub is a public method. "
  end

  private # これ以降に定義したメソッドはprivateになる
  def priv
    puts "priv is a private method. "
  end
end

・継承

class クラス名 < スーパークラスend

変数

・英数、アンダースコア
・数字からは始められない
・変数の種類4つ
グローバル変数

$variable

ローカル変数

variable

インスタンス変数

@variable

クラス変数

@@variable

定数

・大文字から始まる

Hoge
HOGE

コメント

・1行コメント

#

・複数行コメント

=begin
コメント
コメント
=end