Je continuerai à résumer le plan orienté objet. J'ai également eu du mal à comprendre l'orientation des objets, je vais donc l'écrire de manière facile à comprendre et concise pour les débutants autant que possible. Masakari va bien, alors j'aimerais avoir de vos nouvelles.
Un objet signifie «objet» et «objet», et dans la programmation il se réfère à une collection de traitement de données. Dans Ruby, toutes les données telles que les tableaux, le hachage, les nombres et les chaînes sont des objets (mono).
La programmation orientée objet est l'idée de créer et de manipuler des choses (objets).
En orientation objet, une classe ressemble à un dessin de conception qui regroupe les données et le traitement. Fondamentalement, il peut être utilisé en créant un objet basé sur la classe
Les données qu'un objet possède sont appelées une propriété (attribut).
Le traitement de l'objet. En termes humains, c'est le processus par lequel un objet tel que "courir, marcher, s'arrêter" prend des mesures.
nom de la méthode def
Que veux-tu faire
end
Si, par exemple, pour définir une méthode hello pour appeler un "Hello"
def hello
puts 'Bonjour'
end
hello #=>Bonjour
Cela devient comme.
Une instance est un objet créé à partir d'une classe. Utilisez la nouvelle méthode lors de la création d'une instance.
class human
def initialize(name)
@name = name
end
def hello
puts "Bonjour"
end
end
human = human.new("Tokugawa Ieyasu")
La méthode d'initialisation définie ici est une méthode qui est automatiquement exécutée lorsqu'une instance est créée. La valeur "Ieyasu Tokugawa" est maintenant définie dans le nom d'attribut.
L'instance humaine créée à partir de la classe humaine a un nom unique, Ieyasu Tokugawa, et vous pouvez utiliser la méthode appelée hello. Vous pouvez créer un objet avec autant d'informations avec cette seule ligne.
Cela signifie cacher les données et le traitement d'un objet qui n'a pas besoin d'être utilisé directement à partir d'un autre objet, et lors de son utilisation, cela signifie fournir un traitement créé pour une opération externe. Le concept de base orienté objet mentionné précédemment dans l'exemple de la voiture de course.
Il existe des encapsulations publiques et privées. Les méthodes décrites dans public sont accessibles de l'extérieur, mais si private est spécifié, une erreur se produira lors de l'appel.
class human
#public =>Si rien n'est spécifié, ruby est par défaut public. Fondamentalement facultatif.
def initialize(name)
@name = name
end
def hello
puts "Bonjour"
end
end
human = human.new("Tokugawa Ieyasu")
puts human.name #=>Ieyasu Tokugawa est sorti
class human
private
def initialize(name)
@name = name
end
def hello
puts "Bonjour"
end
end
human = human.new("Tokugawa Ieyasu")
puts human.name #=>Une erreur est sortie
Prendre en charge la fonction d'un objet spécifique. Lors de la création de plusieurs objets similaires, la programmation de toutes les propriétés et méthodes une par une prend beaucoup de temps, mais en utilisant l'héritage, la même fonction peut être implémentée.
class Human
def work
puts 'J'ai marché'
end
end
#Hériter de la classe humaine
class IeyasuTokugawa < Human
def unification
puts "Unifié le monde"
end
end
IeyasuTokugawa = IeyasuTokugawa.new
puts IeyasuTokugawa.unification #=>Unifié le monde
puts IeyasuTokugawa.work #=>J'ai marché
Lors de l'héritage d'une classe, vous pouvez utiliser les méthodes définies dans la classe parente en plus des méthodes définies dans la classe elle-même. Dans l'exemple précédent, l'objet de classe "Ieyasu Tokugawa" peut exécuter la méthode "work" de la classe parent en plus de la méthode "unification".
Vous pouvez voir que non seulement les méthodes définies dans la classe mais aussi les méthodes définies dans la super classe (classe parente) peuvent être exécutées.
Qu'est-ce que le polymorphisme? Le polymorphisme est l'un des concepts et méthodes de la programmation orientée objet. Aussi appelé «diversité» en japonais. Cela signifie que la même interface est fournie pour différentes classes.
Le côté qui utilise la classe peut appeler la méthode sans être conscient de la condition réelle de la classe.
class Human
def speak(voice='')
"#{self.name}: #{voice}"
end
end
#Héritage
class NobunagaOda < Human
def speak(voice='Si ça ne sonne pas, tuez-le.')
super
end
end
class IeyasuTokugawa < Human
def speak(voice='Faites bien flotter le navire et retournez bien le navire')
super
end
end
NobunagaOda = NobunagaOda.new
NobunagaOda.name = 'Oda Nobunaga'
IeyasuTokugawa = IeyasuTokugawa.new
IeyasuTokugawa.name = 'Tokugawa Ieyasu'
NobunagaOda.speak #=>Oda Nobunaga:Si ça ne sonne pas, tuez-le.
IeyasuTokugawa.speak #=>Tokugawa Ieyasu:Faites bien flotter le navire et retournez bien le navire
Il s'avère que même avec la même méthode de parole, le comportement change en fonction de la définition dans la classe.
・ Étant donné que chaque programme peut être considéré dans un petit groupe, les programmes compliqués sont réduits. L'impact de la réparation sera réduit et la maintenance sera plus facile.
-Plus le système est grand, plus la mise en œuvre du programme est grande. L'orientation des objets est parallèle et peut être mise en œuvre par un grand nombre de personnes, augmentant ainsi la productivité. Il est également possible d'implémenter des fonctions similaires sans affecter les autres.
-Comme chaque pièce est transformée en pièces, il est facile d'identifier la pièce problématique. Parce qu'il s'agit d'un programme cohérent, le code est hautement lisible et intuitif.
・ Afin de jouer un rôle actif dans le site de développement, la connaissance de la lame de cuisson n'est pas utile. Il existe de nombreux concepts abstraits, donc pour les comprendre correctement Nécessite une expérience sur site
-Bien que des concepts pratiques tels que l'héritage et le polymorphisme puissent être utilisés, la capacité de conception est indispensable pour améliorer la lisibilité et la qualité de l'influence, l'extensibilité et la similitude avec d'autres codes.
Je suis toujours débutant, donc je n'ai pas les compétences techniques. Je pense qu'il est important de garder au moins les concepts de base à l'esprit lors de l'écriture d'un programme. J'espère que d'autres débutants s'en souviendront ensemble.
Recommended Posts