일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DART
- javascript
- 日本語
- 一日一つメソッド
- nico
- ruby
- jsp
- 일본어
- Spring
- 건담
- CSS
- 건담베이스
- C로 시작하는 컴퓨터 프로그래밍4판
- springboot
- vscode
- 반다이몰
- 인프런
- 비즈니스일본어
- Web
- rails7
- Flutter
- 単語
- メソッド
- html
- Python
- 디지몬
- 자바
- rails
- java
- 연습문제
- Today
- Total
AR삽질러
Ruby クラスと定数(Constant)、クラスの継承 본문
Ruby クラスと定数(Constant)、クラスの継承
1. クラスと定数(Constant)
- Rubyでは、定数(Constant)は大文字で始まる名前の変数で、 これらは変更可能ですが、変更を推奨していません。 定数を変更すると、Rubyは警告を発生させます。
class Car
REGION = 'USA'
@@count = 0
def initialize(name)
@name = name
@@count += 1
end
def hello
puts "Hello, I am #{@name}. #{@@count} instance(s)"
end
def self.info
puts "#{@@count} instance(s). Region: #{REGION}"
end
end
car1 = Car.new('ar')
car1.hello
car2 = Car.new('IT')
car2.hello
car3 = Car.new('Ruby')
car3.hello
Car.info
puts Car::REGION
2. クラスの継承
- 親クラス(スーパークラス)の機能を引き続いで、子クラス(サブクラス)を作成することができる。
- コードの再利用性や拡張性を高める仕組み。
基本概念
- スーパークラス(Superclass) : 継承するクラス。
- サブクラス(Subclass) : 継承を受けるクラス。
- サブクラスは、スーパークラスのすべてのメソッドとプロパティを継承する。 サブクラスは、必要に応じて追加のメソッドやプロパティを持つことができ、継承されたメソッドを再定義(オーバーライド)することもできる。
例
- 「親」 自動車クラス(タイヤ、エンジン、ブレーキ)
- 「子」 戦車クラス(+大砲)
- 「子」 乗用車クラス(+後部座席)
- 「子」 トラック(+何台)
例題
1. Userクラスを作成
2. 自己紹介するメソッドhelloを追加
3. Userクラスを継承した、AdminUserクラスを作成
4. 管理者として自己紹介するメソッドadmin_helloを追加
class User
def initialize(name)
@name = name
end
def hello
puts "Hello, My Name is #{@name}!"
end
end
class AdminUser < User
def admin_hello
if @name == "admin"
puts "Hello, 管理者 : #{@name}!"
else
puts "#{@name}様は管理者ではありません。"
end
end
def hello
puts "Admin!"
end
end
user = User.new('AR')
user.hello
admin_user = AdminUser.new('admfin1')
admin_user.hello
admin_user.admin_hello
User Class
- initialize : nameを@nameに割り当てる。
- hello : 挨拶を出力する。
AdminUser < User Class
- User Classのすべてのメソッドを継承する。
- admin_hello : @nameが adminの場合管理者としてのメッセージを出力する。
- hello : User Class の helloメソッドを出力する。
'Ruby > Ruby-日本語' 카테고리의 다른 글
Ruby モジュール (0) | 2023.12.19 |
---|---|
Ruby 例題 - 継承とユーザー入力を活用した動物園 (0) | 2023.12.19 |
Ruby クラス変数とクラスメソッド (0) | 2023.12.19 |
Ruby アクセス メソッド (0) | 2023.12.19 |
Ruby Class例題 - 銀行口座管理システム (1) | 2023.12.19 |