Zensen.プログラミング、カメラを中心になんでも書く雑記ブログです。12Ruby*はじめに!!どうも!Ruby入門者ぴーすけです!以前、JavaプログラマーがRubyに入門した際に調べたことまとめ!!でJavaプログラマーの僕がRubyの基本を学んでみましたが、今回はRubyでクラスを作ってみたいと思います。これもまた、Javaとの違いを中心にまとめたいと思います。//クラスの内容}Rubyも同じような感じです。クラス名は大文字始まりのキャメルケースが慣例みたいです。#クラスの内容end*コンストラクタコンストラクタとは、インスタンス生成時に動く処理を記述できるメソッドです。Javaの場合はクラス名で戻り値なしのメソッドを定義する感じです。}}Rubyの場合は、initializeメソッドを宣言します。endend*インスタンス化インスタンス化の書き方はJavaとはすこーし違います。Sample();Rubyはこうです。#引数は省略可ちなみにRubyの場合はメソッドを呼ぶときの後ろの括弧を省略できます。引数があろうがなかろうと省略できます。*クラスメソッドまずはJavaです。クラス内にstatic付きでメソッドを定義するとクラスメソッドになります。System.out.println("このメソッドはクラスメソッドです。このメソッドはクラスメソッドです。Rubyのクラスメソッドの定義の仕方はいろいろあるみたいですが、一番基本的な宣言は以下のようにメソッド名の前にself.をつければいいようです。"このメソッドはクラスメソッドです。このメソッドはクラスメソッドです。*インスタンスメソッドまずJavaです。クラス内でstaticなしでメソッドを定義すればそれがインスタンスメソッドになります。System.out.println("このメソッドはインスタンスメソッドです。このメソッドはインスタンスメソッドです。Rubyのインスタンスメソッドもクラス内で普通にメソッドを宣言すればOKです。"このメソッドはインスタンスメソッドです。このメソッドはインスタンスメソッドです。*クラス変数はい、Javaです。クラス内でstatic付きで宣言した変数がクラス変数になります。2クラス変数の宣言はクラス内に@@変数名で宣言します。2*インスタンス変数Javaの場合は、クラス内で普通に変数を宣言したものがインスタンス変数となります。Rubyの例と処理を揃えるためにかなり冗長になっています。僕の名前はnullです。name変数はnullではありません。Rubyの場合はインスタンス変数を@変数名と宣言しますが、クラス変数とは違いクラス内に明示的に宣言する必要はありません。これがJavaとは大きく違います。インスタンス変数はクラス内では宣言せずに、インスタンスメソッド内でいきなり@変数名で呼び出したり値を入れたりすることができます。コンストラクタやセッターなどのインスタンスメソッド内で@変数名と宣言した変数がインスタンスで参照できるインスタンス変数になるようなのです。値の入っていないインスタンス変数を参照した場合は「nil」になります。#こうすると「クラスインスタンス変数」という別物になってしまう。"僕の名前は#{@name}です。