일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 건담
- 자바
- 디지몬
- javascript
- 인프런
- html
- 単語
- 日本語
- 일본어
- Python
- java
- nico
- 一日一つメソッド
- vscode
- C로 시작하는 컴퓨터 프로그래밍4판
- 비즈니스일본어
- 반다이몰
- ruby
- 연습문제
- rails
- メソッド
- rails7
- springboot
- Flutter
- Spring
- CSS
- Web
- 건담베이스
- jsp
- DART
- Today
- Total
AR삽질러
Ruby クラス変数とクラスメソッド 본문
Ruby クラス変数とクラスメソッド
1. クラス変数
- クラス自体に値を保持することができる変数
- Rubyで、クラス変数はクラス自体に属する変数で、 クラス変数はクラス内のすべてのインスタンス間で共有され、クラスメソッドからもアクセスできる。
- クラス変数の名前は常に@@で始まります。 これは、インスタンス変数との主な違いの 1 つで、 インスタンス変数は、各オブジェクト インスタンスに対して別々に存在し、@で始まる。
- クラス変数を使用する主な理由は、特定のクラスに関連するステータスや情報をすべてのインスタンス間で共有するためで、 たとえば、クラス インスタンスの総数を追跡したり、クラスに関連付けられた設定を保存したりするために使用できる。
class Car
def initialize(name)
@name = name
end
def hello
puts "Hello, I am #{@name}"
end
end
car = Car.new('ar')
car.hello
例題
- Car クラスのインスタンスが作成された回数をカウントして出力する。
class Car
@@count = 0
def initialize(name)
@name = name
@@count += 1
end
def hello
puts "Hello, I am #{@name}. #{@@count} instance(s)"
end
end
car1 = Car.new('ar')
car1.hello
car2 = Car.new('IT')
car2.hello
car3 = Car.new('Ruby')
car3.hello
2. クラスメソッド
- クラスから直接呼ぶことができるメソッド
- Rubyで、クラスメソッドはクラス自体に属するメソッドで、 これらのメソッドは、特定のインスタンスではなく、クラス自体を介して呼び出される。 クラスメソッドは、クラスのインスタンス(オブジェクト)ではなく、クラス自体に関連するタスクを実行するために使用される。
クラスメソッドを定義する方法
1) メソッドの名前にself.
例題
- Classメソッド infoを定義する。
- クラスメソッド infoを実行すると、インスタンスの生成回数(@@count)を出力する。
class Person
@@count = 0
def initialize(name)
@name = name
@@count += 1
end
def hello
puts "Hello, #{@name}, #{@@count}"
end
def self.info
puts "#{@@count}"
end
end
person = Person.new('AR')
person.hello
Person.info
self.infoでselfは現在のクラス、つまりPersonクラスを指しっている。 したがって、self.infoはPerson.infoと呼び出される。 このようにクラスメソッドを使用すると、クラスレベルでデータや機能を管理でき、インスタンスの生成なしにクラス名を通じて直接アクセスできる。
2) class << self ブロック内のメソッドを定義する方法
class MyClass
class << self
def my_class_method
puts "This is a class method."
end
end
end
MyClass.my_class_method
'Ruby > Ruby-日本語' 카테고리의 다른 글
Ruby 例題 - 継承とユーザー入力を活用した動物園 (0) | 2023.12.19 |
---|---|
Ruby クラスと定数(Constant)、クラスの継承 (0) | 2023.12.19 |
Ruby アクセス メソッド (0) | 2023.12.19 |
Ruby Class例題 - 銀行口座管理システム (1) | 2023.12.19 |
Ruby オリジナルのクラスを作成する (0) | 2023.12.18 |