Commentaire détaillé pour les débutants! Qu'est-ce que l'orientation objet? ・ Cela m'a aidé à comprendre les termes techniques autour de l'orientation des objets.
Iroha \ -Qiita orienté objet ・ L'explication de l'abstraction a été très utile pour réfléchir à la programmation et à l'arrière-plan orienté objet.
[Java] Qu'est-ce qu'un constructeur? Signification de ceci \ () \ | L'introduction la plus simple à Java ・ Après avoir compris les connaissances approximatives (les bases de Java) et l'abstraction jusqu'à présent, j'ai lu cette explication et elle est devenue très familière.
[Orienté objet \ -Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF % E3% 83% 88% E6% 8C% 87% E5% 90% 91) ・ Les six résumés orientés objet ont été utiles comme règles pour ne pas s'écarter de l'orientation objet.
Introduction à l'Object-Oriented ・ Plus tard, cela a semblé bon pour vérifier le degré d'entente, donc un mémorandum.
Clair Java Primer ・ Aide à comprendre la différence entre les objets et les instances.
Mais c'est soudainement,
À quoi pensez-vous quand vous pensez aux «pommes»?
...
En parlant de "pomme", "objet rouge, rond et comestible"
Je pense à toi.
** Je pense que j'ai pu le comprendre sans informations spécifiques **.
Cela s'appelle ** abstraction **.
Comme vous pouvez le voir dans l'exemple, ** un regroupement de fonctionnalités similaires à l'abstraction et leur donnant des noms appropriés. **
Et je pense que la même chose peut être dite à propos de la programmation.
En programmation, il existe de nombreux groupes ayant des caractéristiques similaires.
Les fonctionnalités sont nommées variables, fonctions et orientées objet.
Si c'est une pomme, on peut facilement l'expliquer comme "un objet rouge, rond et comestible", mais dans le cas de la programmation, cela prend du temps à comprendre car l'objet abstrait est très compliqué et il existe différents motifs.
Et l'orientation objet est l'une de ces choses complexes.
Cependant, comme je n'ai pas besoin de connaître divers modèles maintenant, je voudrais donner un exemple concret avec un modèle de route royale et essayer de l'abstraire pour approfondir ma compréhension de la terminologie.
~~ Un objet est un "objet". ~~
~~ Orienté objet ??? ~~
Un objet est généralement un "objet" Dans le monde de la programmation, il vaut mieux la considérer comme un «rassemblement informé» ou un «objet abstrait».
Dans le monde réel, la plupart sont constitués d '«objets».
Un "objet" est supposé exister dans l'espace avec une forme concrète.
Cependant, il est difficile de comprendre si tout est un "objet", j'ai donc décidé de classer chaque caractéristique et de donner un nom à "l'objet".
** Oui, c'est une abstraction. **
De cette façon, il est plus irritant d'adopter l'idée ** "C'est facile à manipuler si vous le considérez comme un objet comme le monde réel" **, donc j'ai faim comme ça. compris.
Et c'est la programmation orientée objet qui a appliqué cette idée à la programmation.
Je pense que cela vient aussi de l'idée ** "car il est plus facile de comprendre le monde de la programmation de la même manière que le monde réel".
Puisque l'objet signifie un objet dans le monde réel, j'ai pensé qu'il serait plus facile à comprendre si vous vous souvenez du monde réel à titre d'exemple, je vais donc l'expliquer avec ** une configuration minimale en utilisant une voiture **.
** J'ai fait un document de conception de voiture. Créez une voiture en vous basant sur le document de conception de la voiture. **
En termes simples, c'est tout.
En outre, ** Créez un "document de conception" décrivant le type de spécifications (couleur, fonction, poids, prix) de la voiture Fabriqué sur la base d'un "document de conception". **
C'est tout.
Et ** quand vous avez une voiture, faites-la rouler. **
↓
La principale chose que je fais est ** "Créer un document de conception pour créer un objet, créer un objet et déplacer l'objet." **
(J'avais le plus faim de cette façon de comprendre.)
Cette fois, je voudrais prendre l'exemple du processus de fabrication d'une voiture rouge.
Dans le monde de la programmation, le code est chargé dans l'ordre du haut.
Par exemple, quand il y a la phrase suivante (ce n'est pas un code mais une phrase pour faciliter la compréhension), elle est lue dans l'ordre du haut.
** 1. Nommez le document de conception "Voiture". 2. Écrivez des informations sur la voiture "la couleur est rouge" et "le nom est A" dans le contenu du document de conception. 3. Dans le contenu du document de conception, écrivez les actions liées à la voiture telles que «peut passer un appel» et «peut s'arrêter». 4. Créez une "voiture" basée sur le "document de conception de voiture". **
Ensuite, au niveau de la programmation, une "voiture rouge appelée A" sera achevée.
De cette façon, ** La programmation orientée objet est l'idée de créer un "document de conception", d'écrire "quel genre de chose" et "ce qui peut être fait" et de le traiter de la même manière comme une chose réelle. **
Cependant, il peut arriver que vous souhaitiez que la voiture soit «bleue».
Dans ce cas, réécrivez la partie 2 de "rouge" à "bleu".
Ensuite, la "voiture bleue appelée A" est terminée.
C'est ainsi qu'il est facile d'apporter des modifications à la programmation.
Dans le monde réel, si vous essayez de faire cela, vous devez prendre le processus de collecte de la voiture, de la peindre en bleu par le haut et de la renvoyer (et c'est très difficile s'il y a beaucoup de voitures, c'est un soi-disant rappel. …).
Cependant, dans le monde de la programmation, tout ce que vous avez à faire est de réécrire le contenu du "Car Design Document".
Je pense avoir compris comment écrire orienté objet.
C'est une idée approximative, mais si vous pouvez comprendre le sens jusqu'à présent
C'est presque comme si j'étais au courant.
** Ces termes ne sont que des noms pour chaque événement de l'exemple précédent. ** (En fait, c'est plus compliqué, mais ... c'est facile à comprendre pour moi.)
C'est difficile à mettre en termes, mais ce que je fais, c'est ** "Créer un document de conception pour créer un objet, créer un objet et déplacer l'objet." **.
Un schéma simple de cette relation est le suivant.
Un objet est un terme général pour les entités générées dynamiquement. Instance est un terme général pour les entités générées dynamiquement de type classe
Cela ressemble à ceci sur la figure.
Lorsqu'ils sont utilisés dans le contexte du simple fait d'être une entité, les objets et les instances sont susceptibles d'avoir la même signification.
Car.java
class Car {
}
[Explication du programme] -Le type est un type de classe et le nom de classe "Car" est déclaré. -Les types de classe sont classés comme types de référence.
Car.java
class Car {
String carname = "A"; //Nom de la voiture
String color = "red"; //Couleur de la voiture
}
[Explication du programme] ・ Nom de voiture de type chaîne qui représente le nom de la voiture ・ Couleur de type chaîne qui représente la couleur de la voiture
Car.java
class Car {
String carname = "A"; //Nom de la voiture
String color = "red"; //Couleur de la voiture
void start() { //Fonctionnement sortant de la voiture
System.out.println("Décollage");
}
void stop() { //Opération d'arrêt de voiture
System.out.println("Arrêtez");
}
}
[Explication du programme] -Représente l'opération sortante de la voiture. Méthode de démarrage du type de retour qui ne renvoie pas de valeur ・ Indique l'opération d'arrêt de la voiture. Méthode d'arrêt de type retour qui ne renvoie pas de valeur
CarTest.java
class CarTest{
public static void main(String[] args){
Car car = new Car();
}
}
[Explication du programme] -Le type est un type de classe et le nom de classe "CarTest" est déclaré. -Instaurer la classe Car avec le nouvel opérateur et attribuer un objet à la variable de type Car (variable de type de classe). → ** On dirait que vous remplacez l'objet créé, mais en fait, la variable Car se réfère uniquement à (voit) l'objet appelé Car (comment y accéder est la partie 2) **.
Cela ressemble à ceci sur la figure.
Bien que ce soit une esquisse approximative, j'ai fait un document de conception pour faire un objet et je l'ai résumé en faisant référence à diverses choses jusqu'à en faire un objet.
Passez à [Java] Object Oriented Summary \ _Part 2 \ -Qiita.
Recommended Posts