TUTO Java : Introduction à la Programmation Orientée Objet et principe d'encapsulation

Поделиться
HTML-код
  • Опубликовано: 19 дек 2024

Комментарии • 47

  • @ericlagane7039
    @ericlagane7039 3 года назад +2

    Comme toujours dans tous ceux que j'ai déjà vu sur Koor le tuto est EXCELLENT !! Quelle maîtrise !!

  • @Lamine_Yamal-f6z
    @Lamine_Yamal-f6z 3 года назад +1

    Merci Dominique pour la qualité du contenu de votre cours

  • @Milamber93
    @Milamber93 5 лет назад +3

    Merci beaucoup pour ces vidéos, j'ai pu visionner presque toute les précédentes (dans l'ordre des cours de ton site) et j'espère pouvoir visionner le reste. Ton cours est très très explicite, pour quelqu'un qui n'est pas un grand initié dans la programmation, cela permet d'acquérir des fondations très importante, ce qui est mon cas, je t'en remercie

  • @jonathanlacourt6456
    @jonathanlacourt6456 4 года назад +3

    bjr je tiens à vous remercier pour tous vos super tuto, en plus gratuit si tous les élèves avaient des gens comme vous le taux d'échec serait presque de 0 :)

  • @hugotang3277
    @hugotang3277 4 года назад +1

    Un grand merci Dominique, ce sujet me semblait impossible à maîtriser mais en apprenant avec vous, j'ai tout compris, vos tutos sont très clairs, encore merci monsieur !

  • @dafjam8741
    @dafjam8741 Год назад

    c'était géniale j'ai adoré merci à vous pour ce cours plus que quali 😋

  • @sofiangherabi4387
    @sofiangherabi4387 7 лет назад +1

    Un cours vraiment complet, les exemples sont claire et rien n'est oublier.
    Merci

    • @DominiqueLiard06
      @DominiqueLiard06  7 лет назад

      Merci de ton soutient. Et note que la playlist est loin d'être terminée : de nouveaux tutos devraient arriver bientôt.

    • @sofiangherabi4387
      @sofiangherabi4387 7 лет назад

      J'attend avec impatience tes cours sur les exceptions, entrée sortie ... Des notions vu en cours mais que je ne maîtrise pas bien

  • @ericgrante7043
    @ericgrante7043 5 лет назад

    Bonjour Dominique,
    Super tuto, je me suis fait toutes la serie android, la java, et je pense faire aussi les autres. Tu explique bien et clairement, dommage que tu ne soit plus connu, car la qualité du cours est excellent. Bonne continuation et merci a toi.

  • @aphroosc0rp677
    @aphroosc0rp677 3 года назад +1

    merci beauoup. Tout est clair. De plus c est agréable à suivre ! bravo...

  • @teewawar9256
    @teewawar9256 7 лет назад +1

    Bravo Dominique pour tes cours ! On comprend absolument tout. Continues comme ça !

  • @drkamalosman
    @drkamalosman 6 лет назад +1

    On apprend facilement avec toi. Merci beaucoup !

  • @apprendresurnet1825
    @apprendresurnet1825 7 лет назад +3

    Bravo !
    Tes cours sont très bien expliqué

  • @royaltyfreemusic7323
    @royaltyfreemusic7323 6 лет назад +1

    Bravo, un cours bien expliqué. Merci a vous

  • @hegelmotokoua
    @hegelmotokoua 4 года назад

    Il y'a une faute mathématique à la minute [ 55:19 ] comme quoi :
    a/b + c/d serait égale à (a*d + b*c)/ad .
    Plûtot : (a*d + b*c)/bd .

  • @وارتقينا
    @وارتقينا 6 лет назад +1

    Bonjour. Grand merci pour ces tuto interessant. svp je trouve pas cette version d android studio j ai installé la derniere version mais elle sont pas identiques. Pouvez vous m informer comment avoir cette version 2.1.2 ou comment revenir avec la miene vers celle ci car j aime vos tuto et j aimerai apprendre d elle. merci tjrs

    • @DominiqueLiard06
      @DominiqueLiard06  6 лет назад

      Bonjour. Merci pour ton retour.
      Pour ce qui est de la version d'Android Studio, c'est embêtant : le studio ne cesse d'évoluer (à une fréquence soutenue) et ses développeurs n’arrête pas de changer l'interface graphique (les menus changent de noms, de place, ...).
      Il faudrait presque refaire toutes les vidéos à chaque nouvelle version (j’exagère un peu, mais pas tant que çà) : et çà, ce n'est pas possible pour moi.
      Pour ce qui est de la version 2.1.2, je ne pense plus qu'on puisse la retrouver, d'autant qu'Android Studio se met à jour quasiment de manière automatique.
      Conclusion, il faut prendre son mal en patience et chercher le nouvel emplacement de chaque fonctionnalité. Je sais, ce n'est pas top. Peut être que prochainement je referais cette vidéo.
      Bon courage

    • @وارتقينا
      @وارتقينا 6 лет назад

      @@DominiqueLiard06 Merci pour votre réponse.
      J'essaierai de localiser ces fameux changements j'ai pas le choix, et sachez qu'on attendera toujours vos tutos vous etes un bon teacher, courage et bonne chance

  • @nahary7996
    @nahary7996 7 лет назад +1

    Merci. ça m'aide vraiment beaucoup.

  • @Naynovitch9
    @Naynovitch9 3 года назад +1

    Merci pour le cours !

  • @plumyop
    @plumyop 3 года назад +1

    Petite erreur de mathématique je pense, à la minute 55:46
    Vous mettez :
    a/b + c/d == (ad+bc)/ad
    Or je pense que les deux dernières lettres doivent être plutôt bd et non ad! et donc donner ceci.
    a/b + c/d == (ad+bc)/bd
    Dans le codage après, c'est bon, mais votre explcation est erronée.
    Merci cependant pour ce que vous faites.

  • @pascalvankeer6179
    @pascalvankeer6179 7 лет назад +1

    Merci pour ce cours exceptionnel, peux-tu me dire si tu en as fait d'autres? Un grand merci

    • @DominiqueLiard06
      @DominiqueLiard06  7 лет назад

      Merci. Et oui, j'ai plusieurs autres tutos. Tu les trouveras sur ce lien : ruclips.net/channel/UCl8T9GRhma8C2PaRfGIjOtAplaylists

  • @Layklant
    @Layklant 7 лет назад +1

    Merci pour ces cours! Sensas!

  • @warzik5910
    @warzik5910 6 лет назад +1

    Salut, super série de tutoriels, tu m'aides énormément, merci à toi! J'ai deux petites questions, la première:
    - Est-ce que tu continueras la série de tuto Java en abordant les bases de données, les fenêtres etc ... ?
    Et la seconde:
    - Est-ce que tu maîtrises également le langage C ? Et que penses-tu du fait de maîtriser plusieurs langages de programmation ?
    Merci à toi !

    • @DominiqueLiard06
      @DominiqueLiard06  6 лет назад +1

      Bonjour. Merci pout ton retour encourageant. Oui j'ai l'intention de continuer ces tutos. Pour ce qui est de la base de données, c'est déjà fait sur cette playlist : ruclips.net/video/yS-hF0irE84/видео.html
      Plus généralement, tu trouveras toutes les playlists sur cette page : ruclips.net/channel/UCl8T9GRhma8C2PaRfGIjOtAplaylists
      Enfin, oui je connais un peu C. Tu trouveras quelques infos sur ce langage à partir de cette page : koor.fr/C/Index.wp
      Je pense que maîtriser plusieurs langages te permettra de répondre à un maximum de besoins : C permet de traiter des sujets que Java ne couvre pas. Je t'encourage donc à continuer.
      Bon courage

    • @warzik5910
      @warzik5910 6 лет назад

      D'accord, merci de votre réponse.

  • @XthecrOssGameR
    @XthecrOssGameR 7 лет назад +1

    Excellent tuto, merci!

  • @frantzcaliste6942
    @frantzcaliste6942 6 лет назад +1

    Cours très efficace

  • @Anto9117
    @Anto9117 2 года назад +1

    POO bien expliquée

  • @kobechristian6190
    @kobechristian6190 5 лет назад +1

    wahoo exellent comme cours

  • @cousinhub4117
    @cousinhub4117 4 года назад

    Comparaison :
    comparer a/b et c/d, revient à comparer ad/bd et bc/bd, donc à comparer ad et bc, de sorte que si :
    1° ad-bc = 0 alors ad = bc et donc a/b = c/d
    2° ad-bc < 0 alors ad < bc et donc a/b < c/d
    3° ad-bc > 0 alors ad > bc et donc a/b > c/d
    2 implémentations possibles :
    1re ---- avec une méthode statique
    public static void compare (Rational r1, Rational r2) {
    int result = r1.numerator * r2.denominator - r1.denominator * r2.numerator ;
    if (result == 0) {
    System.out.println( r1 + " == " + r2);
    } else if (result < 0) {
    System.out.println( r1 + " < " + r2);
    } else {
    System.out.println( r1 + ">" + r2);
    }
    }
    2e ---- avec une méthode d'instance
    public void compare2 (Rational r3) {
    int result = this.numerator * r3.denominator - this.denominator * r3.numerator ;
    if (result == 0) {
    System.out.println( this + " == " + r3);
    } else if (result < 0) {
    System.out.println( this + " < " + r3);
    } else {
    System.out.println( this + ">" + r3);
    }
    }
    ----------
    Application dans le main :
    Rational r6 = new Rational (2,3);
    et ainsi j'ai créé
    r7 = [4/6]
    r8 = [3/5]
    r9 = [7/4]
    r10 = [9/5]
    et r11 = [2/7]
    1re solution --- d'où
    Appel dans le main à méthode statique
    Mathematiques.compare(r6,r7);
    Mathematiques.compare(r8,r9);
    Mathematiques.compare(r10,r11);
    ---> output dans l'atelier éclipse :
    [2/3] == [4/6]
    [3/5] < [7/4]
    [9/5] > [2/7]
    2e solution --- ou
    Appel dans le main à méthode d'instance
    r6.compare2(r7);
    r8.compare2(r9);
    r10.compare2(r11);
    --> output dans l'atelier éclipse équivalent au précédent
    Merci, grâce à vous !

    • @cousinhub4117
      @cousinhub4117 4 года назад

      aurais peut-être dû tenter un switch pour éviter tous ces if
      de même j'aurais peut-être dû entrer mes rationnels dans un array pour éviter toutes ces répétitions à la déclaration / initialisation de mes objets d'instance (rationnels)

    • @cousinhub4117
      @cousinhub4117 4 года назад

      cette tentative de créer systématiquement une méthode statique et une méthode d'instance commence à me faire comprendre les différences entre elles. Du coup pourquoi choisir telle méthode à telle autre ? En effet, elles se dupliquent, sont redondantes. Et où les classe-t-on ? La méthode d'instance, pas d'alternative. Mais en ce qui concerne la méthode statique ? Dans une classe Mathematiques ou dans une autre ? Elles se recoupent... Cela dépendra, j'imagine, du projet en construction. Car ces méthodes devraient en fait hériter aussi bien des règles mathématiques que celles des rationnels ceci étant dit la seconde est partie de la première...

  • @cousinhub4117
    @cousinhub4117 4 года назад

    Du coup, pour la simplification j'ai fait autrement :
    2 implémentations possibles
    1re ----- méthode statique dans classe Mathematiques
    public static void simplify (Rational r) {
    int a = getNumerator();
    int b = getDenominator();
    int divisor = Mathematiques.pgcd (a/b);
    if (divisor != 0) {
    r.setNumerator( a /= divisor );
    r.setDenominator ( b /= divisor);
    }
    }
    2e ----- méthode d'instance dans classe Rational - impossible de faire autrement là
    public void simplify(){
    int pgcd = Mathematiques.pgcd ( this.getNumerator(), this.getDenominator() ) ;
    if ( pgcd != 0) {
    this.setNumerator ( this.numerator /= pgcd );
    this.setDenominator ( this.denominator /= pgcd );
    }
    }
    ---------- Application dans le main
    int result = 3 * 17; // pour m'assurer un pgcd de 17 - donc result == 51
    int result1 = 7 * 17; // pour m'assurer un pgcd de 17 - donc result1 == 119
    Rational r5 = new Rational ( result, result1 );
    1° ----> méthode statique :
    Mathematiques.simplify(r5);
    System.out.println( r5 );
    output : [3/7]
    2° ----> méthode d'instance :
    r5.simplify();
    System.out.println ( r5 );
    output : [3/7]
    --------- avantages et inconvénients ? Je n'ai pas le recul pour le savoir.

  • @hazkeer77
    @hazkeer77 6 лет назад +2

    Tes vidéos sont sympas, mais je trouve qu'il y a trop de math. J'en fais une overdose!

    • @hippo953
      @hippo953 5 лет назад +1

      L'informatique, c'est des maths.

  • @cousinhub4117
    @cousinhub4117 4 года назад

    // soustraction
    a/b - c/d = (ad-cb) / bd
    avec a = this.numerator
    avec b = this.denominator
    avec c = r2.numerator
    et avec d = r2.denominator
    on a,
    public Rational sub(Rational r2){
    return new Rational(
    this.numerator*r2.denominator - r2.numerator*this.denominator,
    this.denominator*r2.denominator
    ) ;
    }
    // multiplication
    (a/b) * (c/d) = ac / bd
    avec les mêmes conversions ci-dessus
    public Rational mult(Rational r2){
    return new Rational(
    this.numerator*r2.numerator,
    this.denominator*r2.denominator
    ) ;
    }
    // division
    (a/b)/(c/d) = ad / bc
    d'où,
    public Rational div(Rational r2){
    return new Rational(
    this.numerator*r2.denominator,
    this.denominator*r2.numerator
    ) ;
    }
    ---
    // Application et utilisation de ces méthodes dans le main :
    avec r1 un objet de classe Rational faisant référence à un objet contenant la valeur [3/5] - selon le format donné par le toString
    et r2 pointant la valeur [3/1]
    au moins addition
    System.out.println(r1.add(r2));
    L'output sur la console (atelier éclipse) : [18/5].
    Je me suis posé la question :
    r1, r2, r3 sont des noms de variables / objets, variables de type évolué (référence)
    Ils comportent donc en mémoire une adresse vers une autre place allouée en mémoire pour stocker les objets (qui portent en leur sein des attributs, des propriétés et des méthodes).
    Donc r1 = fr.koor.poo@a11b779c - par exemple
    r2 = fr.koor.poo@a11b779d - par exemple
    r3 = fr.koor.poo@a11b77a0 - par exemple
    et à cette adresse pointée par r1 on a r1.numerator = 3 et r1.denominator = 5
    et à celle pointée par r2 on a r2.numerator = 3 et r1.denominator = 1
    et le return r3 variable temporaire on a r3.numerator = 18 et r3.denominator = 5
    Et pourtant la méthode println affiche non pas les adresses mais des valeurs sous le format décidé dans le toString() qu'on a employée sans qu'on ne l'invoque ce qui contredit le type de données dit de référence (data de type évolué par opposition au data de type primitif).
    Il fallait que j'aille dans la séquence suivante abordant la question de l'héritage, à la fin, pour avoir la réponse.
    Très clair ! Merci pour votre apport, un des meilleurs tutoriels (si ce n'est pas le meilleur en français existant) sur le langage java que vous m'avez fait apprécier. Un très grand merci !!!
    Un autre aspect un peu difficile est le pourquoi on utilisait des méthodes statiques dans le tutoriel dédié et ici on n'utilise plus des statiques. La seule chose que j'ai retenue (et j'ai peut-être tort) c'est qu'une méthode statique ne s'appelle pas à partir d'un objet. J'ai encore du mal à l'énoncer clairement...

  • @samuelbertin9381
    @samuelbertin9381 4 года назад +1

    Bonjour merci :-)

  • @daufamilly4794
    @daufamilly4794 6 лет назад +1

    Merci.

  • @khaleddjebrouni1651
    @khaleddjebrouni1651 5 лет назад +1

    merci

  • @Elle_randonne
    @Elle_randonne 2 года назад +1

    Merci

  • @houdabenabdallah-j5b
    @houdabenabdallah-j5b 11 месяцев назад

    merci