Je suis vraiment désolé je n'ai pas le temps d'expliquer vraiment en profondeur et je ne sais pas trop si je serais vraiment utile ici mais je trouve ça curieux que personne de ce que j'ai lu n'ait défini le concept de la POO, à savoir représenter des objets.
Si je ne m'abuse c'est de cette méthodologie parfois enfantine qu'est né le concept réel en programmation en fait, j'enfonce surement des portes ouvertes.
Lorsqu'on intègre ça dans la tête, de représenter un objet de tous les jours la théorie un peu baveuse des cours passe en général beaucoup mieux.
Un objet de tous les jours ici je parle d'une voiture, d'une fourchette, d'une bouteille d'eau, un livre voire même d'une personne ( qui n'est pas un objet certes, mais cet exemple est souvent repris dans les bons tutos )
Chaque objet dans mon exemple de la vie de tous les jours peuvent avoir des interactions entre eux, mais font aussi partie de groupes.
Une fourchette est un ustensile, une voiture est un véhicule, comme véhicule on peut également citer un camion, ou une moto, voire un train.
Lorsque tu veux créer une Ferrari, tu créer une voiture, mais surtout un véhicule. Ici ta classe serait donc un véhicule ou une voiture.
Pour faire simplement ta Ferrari hérite donc de tout ce que peut apporter une voiture, mais aussi un véhicule.
Cela étant dit, ta Ford Fiesta est différente d'une Ferrari, elle va moins vite, elle est moins lourde, elle coute moins cher, c'est là que tes deux objets diffèrent un petit peu, ils n'en restent pas moins des voitures.
Je sais pas si ma méthologie " vie de tous les jours " fonctionne pour tout le monde, mais ça vaut le coup d'essayer de prendre du recul sur ton cours/programme et ton écran / IDE pour comprendre réellement la philosophie derrière la POO. Et évidemment mon post est beaucoup trop court ( pas le temps )
Le 17 novembre 2021 à 08:32:06 :
Je suis vraiment désolé je n'ai pas le temps d'expliquer vraiment en profondeur et je ne sais pas trop si je serais vraiment utile ici mais je trouve ça curieux que personne de ce que j'ai lu n'ait défini le concept de la POO, à savoir représenter des objets.
Si je ne m'abuse c'est de cette méthodologie parfois enfantine qu'est né le concept réel en programmation en fait, j'enfonce surement des portes ouvertes.
Lorsqu'on intègre ça dans la tête, de représenter un objet de tous les jours la théorie un peu baveuse des cours passe en général beaucoup mieux.Un objet de tous les jours ici je parle d'une voiture, d'une fourchette, d'une bouteille d'eau, un livre voire même d'une personne ( qui n'est pas un objet certes, mais cet exemple est souvent repris dans les bons tutos )
Chaque objet dans mon exemple de la vie de tous les jours peuvent avoir des interactions entre eux, mais font aussi partie de groupes.
Une fourchette est un ustensile, une voiture est un véhicule, comme véhicule on peut également citer un camion, ou une moto, voire un train.
Lorsque tu veux créer une Ferrari, tu créer une voiture, mais surtout un véhicule. Ici ta classe serait donc un véhicule ou une voiture.
Pour faire simplement ta Ferrari hérite donc de tout ce que peut apporter une voiture, mais aussi un véhicule.
Cela étant dit, ta Ford Fiesta est différente d'une Ferrari, elle va moins vite, elle est moins lourde, elle coute moins cher, c'est là que tes deux objets diffèrent un petit peu, ils n'en restent pas moins des voitures.Je sais pas si ma méthologie " vie de tous les jours " fonctionne pour tout le monde, mais ça vaut le coup d'essayer de prendre du recul sur ton cours/programme et ton écran / IDE pour comprendre réellement la philosophie derrière la POO. Et évidemment mon post est beaucoup trop court ( pas le temps )
Le problème d'avoir une conception trop centrée sur l'héritage c'est que ça mène aux mecs qui implémentent la logique business de leur application avec le système de type du langage ![]()
En aucun cas mon post avait vocation à transposer ça sur de l'applicatif réel, l'auteur veut apprendre et/ou comprendre la POO donc j'appose ma pierre à l'édifice en prenant un peu plus de recul sur les choses, avec des images qu'on connait tous plus ou moins.
Si c'est si drôle tant mieux, je fais une pierre deux coups.
l'héritage est un piège a noob, très rarement il est possible de l'implémenter de façon cohérente, les interfaces sont beaucoup mieux adaptées dans la majorité des cas
Cela permet de comprendre la philosophie et du bordel et d’itérer pas à pas ses connaissances au lieu d'être bombardé de keyword qui, selon honnêtes pour un débutant ne veut pas dire grand chose.- sauf si il veut se taper des de myriades de livres à ce sujet évidemment.
"Ton piège à noob" en fait peut être une force puisque tu peux en tirer si tu le souhaite des objectifs, des perspectives d’améliorations et donc potasser les choses qui permettraient de t’améliorer, là encore brique par brique.
Donc ce que tu considère comme piège à noob est bien plus formateur qu'on ne le croit, à condition de ne cesser de continuer sa formation et d'aller plus loin dans ses connaissances.
Je veux dire on commence pas par l'apprentissage du JS si on ne connait pas à minima les bases du CSS et du HTML, ça n'a aucun sens, ici c'est un peu la même chose.
Si t'as une perspective d’amélioration au bout du compte, je pense pas que ça soit très déconnant de lui conseiller ça.
Chacun voit midi à sa porte après.
Le 17 novembre 2021 à 08:32:06 :
Je suis vraiment désolé je n'ai pas le temps d'expliquer vraiment en profondeur et je ne sais pas trop si je serais vraiment utile ici mais je trouve ça curieux que personne de ce que j'ai lu n'ait défini le concept de la POO, à savoir représenter des objets.
Si je ne m'abuse c'est de cette méthodologie parfois enfantine qu'est né le concept réel en programmation en fait, j'enfonce surement des portes ouvertes.
Lorsqu'on intègre ça dans la tête, de représenter un objet de tous les jours la théorie un peu baveuse des cours passe en général beaucoup mieux.Un objet de tous les jours ici je parle d'une voiture, d'une fourchette, d'une bouteille d'eau, un livre voire même d'une personne ( qui n'est pas un objet certes, mais cet exemple est souvent repris dans les bons tutos )
Chaque objet dans mon exemple de la vie de tous les jours peuvent avoir des interactions entre eux, mais font aussi partie de groupes.
Une fourchette est un ustensile, une voiture est un véhicule, comme véhicule on peut également citer un camion, ou une moto, voire un train.
Lorsque tu veux créer une Ferrari, tu créer une voiture, mais surtout un véhicule. Ici ta classe serait donc un véhicule ou une voiture.
Pour faire simplement ta Ferrari hérite donc de tout ce que peut apporter une voiture, mais aussi un véhicule.
Cela étant dit, ta Ford Fiesta est différente d'une Ferrari, elle va moins vite, elle est moins lourde, elle coute moins cher, c'est là que tes deux objets diffèrent un petit peu, ils n'en restent pas moins des voitures.Je sais pas si ma méthologie " vie de tous les jours " fonctionne pour tout le monde, mais ça vaut le coup d'essayer de prendre du recul sur ton cours/programme et ton écran / IDE pour comprendre réellement la philosophie derrière la POO. Et évidemment mon post est beaucoup trop court ( pas le temps )
Sauf que cette vision de la POO est un mythe véhiculé de génération en génération par les mauvais professeurs d'informatique.
Et si personne n'en a parlé c'est précisément parce que c'est une tromperie que de présenter la POO de la sorte.
La vérité c'est qu'une classe ça représente non pas un concept concret (un chat, un avion) mais une unité cohérente de code qui gère une seule responsabilité.
Exemple : une classe User qui se contente de contenir les informations d'un utilisateur et une classe UserRepository qui se contente de gérer la persistance des utilisateurs, UserRepository pourra à son tour reposer (par composition) sur une classe Database qui servira d'interface avec une base de données.
La vision naïve de la POO ça pousse à polariser son code autour de classes monstrueuses qui ont 150 responsabilités, qui violent le principe de substitution de Liskov à cause d'une mauvaise utilisation de l'héritage, qui rendent impossible toute abstraction.
Pour aller plus loin (1).
(1) https://ericlippert.com/2015/04/27/wizards-and-warriors-part-one/
Cela permet de comprendre la philosophie et du bordel et d’itérer pas à pas ses connaissances
( et en fait l'ensemble de mon message précédent ).
C'est comme lorsqu'on apprend aux gamins à l'école qu'avant zéro il n'y a rien, du vide, du néant, puis quelques années plus tard, on leur apprend les décimales, les négatifs et tout ce genre de chose. C'est de cette itération des connaissances, qui peut je le conviens être contre-productif pour certains permettre de faciliter la compréhension des choses.
Toi tu pars sur un cas concret directement, c'est une autre école, libre à chacun de voir quelle méthologie lui sied le mieux.
Au départ, quand je comprenais rien à la poo, ce livre m'avait bien aidé, en dépit du nom
https://java.developpez.com/livres-collaboratifs/javaenfants/
Jette juste un oeil sur la partie poo, crois moi ![]()
Le 18 novembre 2021 à 02:52:21 :
Cela permet de comprendre la philosophie et du bordel et d’itérer pas à pas ses connaissances
( et en fait l'ensemble de mon message précédent ).
C'est comme lorsqu'on apprend aux gamins à l'école qu'avant zéro il n'y a rien, du vide, du néant, puis quelques années plus tard, on leur apprend les décimales, les négatifs et tout ce genre de chose. C'est de cette itération des connaissances, qui peut je le conviens être contre-productif pour certains permettre de faciliter la compréhension des choses.Toi tu pars sur un cas concret directement, c'est une autre école, libre à chacun de voir quelle méthologie lui sied le mieux.
Mais quand bien même ça serait qu'une première approximation pour aider à comprendre, qu'est-ce que ça aide à comprendre exactement ? ![]()
Que les classes forment un type et que les instances sont les éléments de ce type, ce qui s'illustre tout aussi bien avec des vraies classes (quitte à prendre des classes genre String pour illustrer) ? ![]()
L'héritage qui est un des points les plus insignifiants de la POO ? ![]()
L'exemple qui ma permis de beaucoup mieux comprendre le concept de la POO c'est celui des livres :
"Par exemple, il existe différents types de livres, mais ils ont tous tendance à avoir un titre, un auteur, une couverture, des pages, etc. En d'autres termes, les livres individuels ont tous des attributs similaires qui vous permettent de les classer dans votre esprit comme faisant partie de la catégorie « livre »."
donc :
"Cette liste mentale d'attributs que nous venons de décrire pour un livre agit comme une sorte de plan directeur pour l'objet "livre". En programmation, cela s'appelle une classe."
Du coup chaque livre est une instance, par exemple, 20.000 lieu sous les mers de Jules verne est une instance de la classe livre
Avec cette exemple + toutes vos explication + un livre que ma donnée un forumeur en mp, j'ai enfin pu comprendre tout le concept de POO
en tout cas merci à tous pour vos messages c'était super instructif (quoique parfois très complexe à comprendre) !
vous m'avez beaucoup aidé !