クラスとオブジェクト

中級
45
4時間30分

Rubyのクラスとオブジェクトに関する練習問題

Rubyコースの一部として、クラスとオブジェクトに関する実践的な練習問題を45問用意しています。 基礎から応用まで段階的に学習できるよう構成されています。

学習を開始する準備ができました

下記の練習問題から始めて、段階的にスキルアップしていきましょう

ruby icon

練習問題一覧 (45問)

問題 1

Rubyでクラスメソッドを定義するときに、メソッド名の前につけるキーワードは何ですか?

問題 2

以下のコードで`self`を省略できないのはどの行ですか? ```ruby class User attr_accessor :name def initialize(name) self.name = name # A end def greet puts "こんにちは、#{self.name}です" # B end end ```

問題 3

Rubyでインスタンス変数の値を取得するメソッドを何と呼びますか?

問題 4

以下のコードで間違っている部分はどれですか? ```ruby class Book attr_accessor :title def initialize(title) title = title # A end def display puts self.title # B end end ```

問題 5

クラス変数の適切な使用例として最も適しているものはどれですか?

問題 6

以下のコードで、エラーが発生する行はどれですか? ```ruby class Character attr_reader :hp attr_writer :job def initialize @hp = 100 @job = "戦士" end end hero = Character.new puts hero.hp # 行A hero.job = "魔法使い" # 行B puts hero.job # 行C hero.hp = 200 # 行D ```

問題 7

以下のコードで空欄に入る適切なコードはどれですか? ```ruby class Book def set_title(title) ______ = title end def show_title puts ______ end end ```

問題 8

`attr_accessor :name`によって自動的に作成されるメソッドはどれですか?

問題 9

以下のコードの空欄に入る適切なコードは何ですか? ```ruby class Character def ______(name, hp) @name = name @hp = hp end end hero = Character.new("勇者", 200) ```

問題 10

インスタンス変数の正しい命名規則はどれですか?

問題 11

Rubyにおけるクラス名の命名規則として正しいものはどれですか?

問題 12

クラス変数の最も重要な特徴はどれですか?

問題 13

ローカル変数とインスタンス変数の最も大きな違いは何ですか?

問題 14

以下のコードの実行結果はどうなりますか? ```ruby class Person attr_accessor :age def initialize(age) self.age = age end def next_year self.age + 1 end end person = Person.new(25) puts person.next_year ```

問題 15

以下のコードの空欄に入る正しいメソッドは何ですか? ```ruby name = "Ruby" puts name.______ # => String ```

問題 16

クラスメソッドとインスタンスメソッドの違いとして正しいのはどれですか?

問題 17

Rubyにおいて、インスタンスが作成されるときに自動的に呼び出される特別なメソッドの名前は何ですか?

問題 18

以下のコードで、デフォルト値を持たない引数を省略した場合、何が起こりますか? ```ruby class User def initialize(name, age = 20) @name = name @age = age end end user = User.new ```

問題 19

クラス変数と継承に関する説明として正しいものはどれですか?

問題 20

以下のコードの実行結果はどうなりますか? ```ruby class User @@user_count = 0 def initialize(name) @name = name @@user_count += 1 end def self.count @@user_count end end user1 = User.new("山田") user2 = User.new("佐藤") puts User.count ```

問題 21

Rubyで`self`が表すものは何ですか?

問題 22

以下の変数の使い分けとして最も適切なものはどれですか?

問題 23

以下のコードで間違っている部分はどれですか? ```ruby class Game def self.start puts "ゲームを開始します" end def self.stop puts "ゲームを終了します" end end game = Game.new game.start ```

問題 24

以下のコードでクラスメソッドはどれですか? ```ruby class User def initialize(name) @name = name end def self.count puts "ユーザー数を取得" end def greeting puts "こんにちは#{@name}さん" nend end ```

問題 25

複数のインスタンス変数に対してアクセサメソッドを定義する正しい書き方はどれですか?

問題 26

以下のコードでエラーが発生する理由は何ですか? ```ruby class Test def method_a name = "太郎" end def method_b puts name end end ```

問題 27

initializeメソッドの戻り値について正しい説明はどれですか?

問題 28

以下のコードでインスタンスを作成する正しい方法はどれですか? ```ruby class Cat def meow puts "にゃー" end end ```

問題 29

以下のコードの実行結果はどうなりますか? ```ruby class Animal def self.species_info "動物の分類情報" end def name "名前未設定" end end puts Animal.species_info ```

問題 30

ファクトリーメソッドとして使われるクラスメソッドの主な目的は何ですか?

問題 31

インスタンス変数のスコープ(有効範囲)について正しい説明はどれですか?

問題 32

同じクラスから作成された複数のインスタンスについて、正しい説明はどれですか?

問題 33

以下のコードを実行した場合、`dog2.bark`の出力はどうなりますか? ```ruby class Dog def set_name(name) @name = name end def bark puts "#{@name}:わんわん!" end end dog1 = Dog.new dog1.set_name("ポチ") dog2 = Dog.new dog2.set_name("ハチ") dog1.set_name("新ポチ") dog2.bark ```

問題 34

`attr_accessor :name`を定義した場合、自動的に生成されるメソッドはどれですか?

問題 35

クラスメソッドの正しい呼び出し方はどれですか?

問題 36

Rubyでインスタンス変数を表すには、変数名の前に何を付けますか?

問題 37

Rubyにおけるクラス変数の記述方法として正しいものはどれですか?

問題 38

以下のコードの実行結果はどうなりますか? ```ruby class Game attr_accessor :score def initialize @score = 0 end end game = Game.new game.score = 1000 puts game.score ```

問題 39

以下のコードを実行したとき、2回目の`counter.count_up`の結果はどうなりますか? ```ruby class Counter def count_up local_count = 0 @instance_count = 0 if @instance_count.nil? local_count += 1 @instance_count += 1 puts "local: #{local_count}, instance: #{@instance_count}" end end counter = Counter.new counter.count_up # 1回目 counter.count_up # 2回目 ```

問題 40

インスタンス変数の初期値は何ですか?

問題 41

以下のコードの実行結果はどうなりますか? ```ruby class Dog def bark puts "わんわん!" end end pochi = Dog.new hachi = Dog.new pochi.bark ```

問題 42

以下のコードの実行結果はどうなりますか? ```ruby class Rectangle def initialize(width, height = width) @width = width @height = height @area = @width * @height end def show_area puts @area end end square = Rectangle.new(5) square.show_area ```

問題 43

以下のコードを実行したとき、何が表示されますか? ```ruby class Product def initialize(name = "商品", price = 100) @name = name @price = price puts "#{@name}: #{@price}円" end end item = Product.new("りんご") ```

問題 44

Rubyにおけるクラスの定義について、正しい説明はどれですか?

問題 45

`attr_writer`で定義されたインスタンス変数に対して実行できる操作はどれですか?

💡 学習のコツ

  • • 順番に取り組むことで、段階的に理解を深めることができます
  • • 間違えた問題は解説をしっかり読んで理解しましょう
  • • 全問題完了後、もう一度チャレンジして定着を確認しましょう

📚 学習の進め方

1

問題を順番に解く

基礎から応用へと段階的に構成されているため、順番に取り組むことをお勧めします

2

解説をしっかり読む

正解・不正解に関わらず、解説を読んで理解を深めましょう

3

復習で定着させる

間違えた問題は後日再チャレンジして、知識の定着を確認しましょう

前のトピック

配列

次のトピック

条件分岐

さらに効果的な学習を

プレミアムプランでは、進捗管理、間違えた問題の自動復習リスト、詳細な解説動画など、 より充実した学習体験をご利用いただけます。