Résumé du contenu lié à la définition de la classe ruby.
table des matières
python
classe nom de classe
end
└ Le nom de la classe est en majuscule au début └ Pas besoin de ":" à la fin de la première ligne └ "fin" est obligatoire à la fin de la phrase
Une variable qui stocke des valeurs uniques à chaque instance.
ʻAttr_accessor: nom de la variable d'instance ` └ Espace immédiatement après attr_accessor └ Symbole (: valeur) après l'espace └ Pas d'espace entre ":" et "value"
Définition des variables d'instance
class Product
attr_accessor :name
attr_accessor :price
end
Définissez les variables d'instance "nom" et "prix".
Nom de classe.new
python
class Product
attr_accessor :name
attr_accessor :price
end
#Génération d'instance
product1 = Product.new
"Nom de l'instance. Nom de la variable d'instance = valeur"
python
class Product
attr_accessor :name
attr_accessor :price
end
#Génération d'instance
product1 = Product.new
#Définissez la valeur dans la variable d'instance
product1.name = "iphone"
product1.price = 100000
puts product1.name
puts product1.price
#production
iphone
100000
Définissez iphone sur le nom de l'instance appelée product1. Fixez le prix à 100000.
Les méthodes de la classe sont appelées méthodes d'instance.
python
nom de classe de classe
nom de la méthode def(Nom de l'argument)
En traitement
end
end
ʻInstance name.method name`
Identique à l'appel d'une variable d'instance.
python
class Product
attr_accessor :name
attr_accessor :price
def create
return "Créé une instance(return)"
end
end
#Génération d'instance
product1 = Product.new
#Appel de méthode d'instance
puts product1.create
#production
Créé une instance(return)
nom de la variable d'instance self
python
class Product
attr_accessor :name
attr_accessor :price
def create
puts "Le nom du produit est#{self.name}est"
puts "le prix est#{self.price}est"
end
end
#Génération d'instance
product1 = Product.new
#Définissez la valeur dans la variable d'instance
product1.name = "iphone"
product1.price = 100000
#Exécution de la méthode d'instance
product1.create
#production
Le nom du produit est iphone
Le prix est 100000
python
class Product
attr_accessor :name
attr_accessor :price
#Méthode de 10% de réduction pour les commandes de 10 ou plus
def get_total_price(count)
total_price = self.price * count
if count >=10
total_price *= 0.9
end
return total_price
end
end
#Génération d'instance
product1 = Product.new
#Définissez la valeur dans la variable d'instance
product1.name = "iphone"
product1.price = 100000
#Exécution de la méthode d'instance
puts product1.get_total_price(10)
#production
900000
Une fonction qui est automatiquement exécutée lorsqu'une instance est créée. (Constructeur tel que python)
Passez des arguments lors de la création d'une instance et définissez des variables d'instance.
python
nom de classe de classe
def initialize(Nom de l'argument)
En traitement
end
end
#Génération d'instance
Nom de l'instance=nom de la classe.new(argument)
Exemple ①
class Product
attr_accessor :name
attr_accessor :price
def initialize(name,price)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
#Génération d'instance
product1 = Product.new("iphone", 100000)
puts product1.info
#production
Nom du produit: iphone, prix: 100000
Exemple ② (argument mot-clé)
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
#Génération d'instance
product1 = Product.new(name:"iphone", price:100000)
puts product1.info
#production
Nom du produit: iphone, prix: 100000
requiert" ./ nom de fichier "
`
└ Pas besoin d'extension ".rb"
▼ Lisez "product.rb" qui décrit la définition de classe au début de "index.rb".
product.rb
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
index.rb
#Lecture de fichiers
require "./product"
#Instancier avec la classe du fichier lu
product1 = Product.new(name:"iphone", price:100000)
puts product1.info
#production
Nom du produit: iphone, prix: 100000
--Split la définition de classe et l'instanciation en fichiers. --Créez plusieurs instances et stockez-les dans un tableau.
product.rb
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
index.rb
#Lecture de fichiers
require "./product"
#Instancier avec la classe du fichier lu
product1 = Product.new(name:"iphone6s", price:60000)
product2 = Product.new(name:"iphone8", price:80000)
product3 = Product.new(name:"iphoneX", price:100000)
product4 = Product.new(name:"iphone11pro", price:120000)
#Stocker les instances dans un tableau
products = [product1,product2, product3, product4]
#Extraire les instances une par une avec chaque méthode
products.each do |product|
#Exécuter la méthode d'information sur chaque instance
puts product.info
#production
Nom du produit: iphone6s, Prix: 60000
Nom du produit: iphone8, prix: 80000
Nom du produit: iphoneX, prix: 100000
Nom du produit: iphone11Pro, Prix: 120,000
--Combinez chaque méthode avec une variable qui s'incrémente de 1.
index.rb
#Lecture de fichiers
require "./product"
#Instancier avec la classe du fichier lu
product1 = Product.new(name:"iphone6s", price:60000)
product2 = Product.new(name:"iphone8", price:80000)
product3 = Product.new(name:"iphoneX", price:100000)
product4 = Product.new(name:"iphone11pro", price:120000)
#Stocker les instances dans un tableau
products = [product1,product2, product3, product4]
#Définir des variables pour les numéros d'index
index = 0
#Extraire les instances une par une avec chaque méthode
products.each do |product|
#Exécuter la méthode d'information sur chaque instance
puts "#{index}. #{product.info}"
index += 1
#production
0.Nom du produit: iphone6s, Prix: 60000
1.Nom du produit: iphone8, prix: 80000
2.Nom du produit: iphoneX, prix: 100000
3.Nom du produit: iphone11Pro, Prix: 120,000
Nom de la variable = gets.chomp
Stocke le contenu saisi avant d'appuyer sur la touche Entrée dans une variable. * Stocké sous forme de chaîne de caractères
Étant donné que les informations reçues par gets.chomp sont une chaîne de caractères, elles sont converties en valeur numérique.
Nom de la variable = gets.chomp.to_i
Recevoir les données d'entrée
puts "Veuillez saisir un pseudo"
name = gets.chomp.to_i
puts "Veuillez entrer votre âge"
age = gets.chomp.to_i
future_age = age+30
puts "#{name}30 ans plus tard#{future_age}est"
Recevez le numéro d'index de l'instance et la quantité commandée.
--Sélectionnez l'instance qui correspond à la valeur d'entrée reçue. --Recevoir la quantité commandée et renvoyer le montant total.
▼ Fichier défini par classe
product.rb
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
index.rb
#Lecture de fichier
require "./product"
#Instancier avec la classe du fichier lu
product1 = Product.new(name:"iphone6s", price:60000)
product2 = Product.new(name:"iphone8", price:80000)
product3 = Product.new(name:"iphoneX", price:100000)
product4 = Product.new(name:"iphone11pro", price:120000)
#Stocker les instances dans un tableau
products = [product1,product2, product3, product4]
#Définir des variables pour les numéros d'index
index = 0
#Extraire les instances une par une avec chaque méthode
products.each do |product|
#Exécuter la méthode d'information sur chaque instance
puts "#{index}. #{product.info}"
index += 1
#Recevoir le numéro d'article
puts "Veuillez saisir le numéro d'article"
order = gets.chomp.to_i
selected_product = products[order]
#Recevoir le nombre de commandes
puts "Le produit sélectionné est#{selected_product.name}est"
puts "Combien de pièces souhaitez-vous commander?"
count = gets.chomp.to_i
#Calcul du montant total
total_price = selected_product.price * gets.chomp.to_i * 1.1
puts "Le montant total est#{total_price}est"
Hérite des variables d'instance et des méthodes d'instance de la classe parent.
classe Nom de la classe enfant <Nom de la classe parent
└ Lettres majuscules au début
└Enfin, fin requis
└ La classe parent est en haut (ou lue dans un autre fichier)
Héritage
require "./Nom du fichier de classe parent"
classe Nom de classe enfant<Nom de la classe parent
end
Les fichiers sont à peu près classés en quatre types. Les parenthèses sont des exemples de noms de fichiers.
--Fichier qui définit la classe parent (nom de la classe parent.py) --Fichier qui définit la classe enfant (nom de classe enfant.py) --Fichier d'instanciation (data.py) --Fichier de sortie (index.py)
Un fichier qui définit les classes enfants est créé pour chaque classe enfant. (Selon la quantité de code, il peut être combiné en un seul fichier)
Définissez simplement une nouvelle variable d'instance dans la classe héritée.
ʻAttr_accessor: nom de la variable d'instance `
product.rb
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
▼ Créer une classe Phone par héritage. Ajout du poids variable de l'instance.
phone.rb
require "./product"
class Phone < Product
attr_accessor :weight
end
▼ Définissez la valeur sur l'instance générée par la classe enfant Phone
index.rb
require "./phone"
#Génération d'instance
phone1 = Phone.new(name: "iphone11", price: "120000")
#Définissez la valeur sur la variable d'instance ajoutée
phone1.weight = "194g"
puts phone1.weight
#production
194g
Définissez simplement une nouvelle méthode d'instance dans la classe héritée.
▼ Ajout d'une méthode au phone.rb ci-dessus.
nom de l'instance de soi
└ Appel de variables d'instance au sein d'une classe
phone.rb
require "./product"
class Phone < Product
attr_accessor :weight
def set_property
return "#{self.name}Pèse#{self.weight}est"
end
end
▼ Appel de méthodes supplémentaires
index.rb
require "./phone"
#Génération d'instance
phone1 = Phone.new(name: "iphone11", price: "120000")
#Définissez la valeur sur la variable d'instance ajoutée
phone1.weight = "194g"
#Appelez la méthode ajoutée
puts phone1.set_property
#production
iphone11 pèse 194g
Écraser les variables / méthodes d'instance. (S'il est déjà défini dans la classe parent, il sera remplacé)
product.rb
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
▼ Remplacer la méthode info de la classe parent
phone.rb
require "./product"
class Phone < Product
attr_accessor :weight
#passer outre
def info
return "nom du produit:#{self.name},prix:#{self.price}Cercle, poids:#{self.weight}"
end
end
▼ Appel de la méthode remplacée
index.rb
require "./phone"
#Génération d'instance
phone1 = Phone.new(name: "iphone11", price: "120000")
#Définissez la valeur sur la variable d'instance ajoutée
phone1.weight = "194g"
#Appelez la méthode ajoutée
puts phone1.info
#production
Nom du produit: iphone11, prix: 120000 yens, poids: 194g
Appelez une méthode qui a déjà été définie dans initialize.
super (argument: variable de la classe parent)
▼ Classe des parents
product.rb
class Product
attr_accessor :name
attr_accessor :price
#Où appeler avec priorité
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
end
phone.rb
require "./product"
class Phone < Product
attr_accessor :weight
#Remplacer l'initialisation (appeler la pièce existante)
def initialize(name:, price:, weight:)
super(name: name, price: price)
self.weight = weight
end
#passer outre
def info
return "nom du produit:#{self.name},prix:#{self.price}Cercle, poids:#{self.weight}"
end
end
nécessite" nom de classe "
└ Différent de la lecture d'un fichier
(nécessite "./filename")
Une des classes définies par défaut dans Ruby.
▼ Classe de chargement
require "date"
▼ Génération d'instance de date
Variable = Date.new (aaaa, m, j)
▼ Sortie yyyy-mm-dd
python
require "date"
yesterday = Date.new(2020, 5, 30)
puts yesterday
#production
2020-05-30
Vérifier s'il s'agit du jour spécifié → Renvoyer sous forme de valeur booléenne. ʻInstance name.day? `
python
require "date"
yesterday = Date.new(2020, 5, 30)
puts yesterday.monday?
puts yesterday.saturday?
#production
false
True
Date.today
python
require "date"
date1 = Date.today
puts date1
#production
2020-05-31
Méthode d'instance --Appeler à l'instance
Nom de l'instance Nom de la méthode
--Définition: nom de la méthode def
--Fin à la fin de la phrase
Méthode de classe --Appeler en classe
Nom de la classe Nom de la méthode
--Définition: def class name.method name
--Fin à la fin de la phrase
** Lors de l'utilisation de méthodes de classe ** -Les résultats de sortie qui ne dépendent pas de l'instance.
Exemple: recherchez la date du jour.
Date.today
Vous pouvez créer vos propres méthodes de classe.
def class name.method name
** ▼ Méthode de classe pour vérifier si la date d'aujourd'hui est le lundi **
--Lire la classe Date --Définir une méthode de classe
product.rb
require "date"
class Product
attr_accessor :name
attr_accessor :price
def initialize(name:,price:)
self.name = name
self.price = price
end
def info
return "nom du produit:#{self.name},prix:#{self.price}"
end
#Définir la méthode de classe
def Product.is_today_off
today = Date.today
if today.monday
"Aujourd'hui est un jour férié régulier"
else
self.info
end
▼ Utilisez la méthode de classe définie
index.rb
require "./product"
product1 = Product.new(name: "iphone11", price: "120000")
#Appel d'une méthode de classe
Product.is_today_off
Recommended Posts