AR삽질러

Ruby オリジナルのクラスを作成する 본문

Ruby/Ruby-日本語

Ruby オリジナルのクラスを作成する

아랑팡팡 2023. 12. 18. 22:24
728x90

 

Ruby オリジナルのクラスを作成する

 

Rubyで、クラスはオブジェクトの青写真を定義する。 クラスは、データ(属性)とデータに対する動作(メソッド)をカプセル化する。 Ruby ですべてはオブジェクトであり、クラス自体も 1 つのオブジェクトです。

 

配列クラス Array

 - Method

  - 配列の長さを求める size

  - 配列を反転する reverse

  - 配列をシャッフル shuffle など

 

インスタンス変数

 - オブジェクトの状態を表し、通常は@で始まる。
メソッド

 - オブジェクトの行為を定義する。 インスタンスメソッドはオブジェクト レベルで動作し、クラスメソッドはクラス レベルで動作する。
初期化メソッド (initialize)

 - オブジェクト生成時に自動的に呼び出される特別なメソッドで、 オブジェクトの初期状態を設定するために使用される。

 

例題

 - 自動車を定義するクラス

 - Carクラス

  - メソッド hello ・・・helloと出力する機能

class Car
    def initialize(name)
        @name = name
    end
    def hello
        puts "My Car is #{@name}."
    end
end

car1 = Car.new('kitt')
car1.hello

car2 = Car.new('Karr')
car2.hello

 

class Car : 'Car' という新しいクラスを定義する

initialize メソッド : クラスの生成者で 'Car.new'を呼ぶ出す時に @nameインスタンス変数を初期化し実行される。

@name : インスタンス変数

 


 

Class 問題 : 図書館管理システム
 - 図書館で本を管理するための簡単なシステムを作りたいと思います。 Bookクラスを作成し、これを使用して図書館の本のリストを管理してください。

1. Book クラス定義
 - 各本はタイトル(title)、著者(author)、そして出版年度(year)属性を持たなければなりません。
 - initializeメソッドを使用して新しい本オブジェクトを作成するときに、この情報を初期化します。
 - infoメソッドを作成し、本の情報を"Title: [タイトル]、Author: [著者]、Year: [出版年度]"形式で出力します。

2. Libraryクラス定義:
 - Libraryクラスは、複数の本(Bookオブジェクト)を管理します。
 - add_bookメソッドを使用して、新しい本を図書リストに追加します。
 - list_booksメソッドを使用して、現在図書リストにあるすべての本の情報を出力します。

3. 図書館オブジェクトの作成と本の追加
 - Libraryオブジェクトを作成し、ここに数冊の本を追加してください。
 - 各本の情報を出力して、正しく追加されていることを確認します。

 

class Book
    def initialize(title, author, year)
        @title = title
        @author = author
        @year = year
    end

    def info
        puts "----Book Title----\n Title : #{@title}\n Author : #{@author}\n Year : #{@year}"
    end
end

class Library
    def initialize
        @books = []
    end

    def add_book(book)
        @books << book
    end

    def list_books
        @books.each { |book| puts book.info }
    end
end
library = Library.new

library.add_book(Book.new("Rilasについて", "David Heinemeier Hansson", 2004))
library.add_book(Book.new("Rubyについて", "まつもとゆきひろ", 2010))

library.list_books

 

 

 

 

 

 

 

728x90
반응형
LIST

'Ruby > Ruby-日本語' 카테고리의 다른 글

Ruby アクセス メソッド  (0) 2023.12.19
Ruby Class例題 - 銀行口座管理システム  (1) 2023.12.19
Ruby 戻り返し処理  (0) 2023.12.18
Ruby ハッシュ  (0) 2023.12.18
Ruby 配列  (2) 2023.12.18