일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인프런
- DART
- 일본어
- 건담
- nico
- jsp
- 자바
- 一日一つメソッド
- springboot
- CSS
- Flutter
- rails
- html
- 日本語
- Python
- rails7
- ruby
- 건담베이스
- 연습문제
- 비즈니스일본어
- 반다이몰
- 単語
- メソッド
- java
- 디지몬
- javascript
- C로 시작하는 컴퓨터 프로그래밍4판
- Web
- vscode
- Spring
Archives
- Today
- Total
AR삽질러
Ruby オリジナルのクラスを作成する 본문
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 |