Programmation objet avec C#

  • admin 
POO avec C#

Je vous propose un petit tutoriel, condensé en une vidéo pour se pencher sur la POO avec C#. Dans cette vidéo nous allons pratiquer la programmation objet, créer des classes, une interface, des méthodes, découvrir l’héritage entre les classes… Bref 35 minutes pour bien comprendre la programmation orientée objet avec le langage de programmation C#.

Le tutoriel vidéo

https://www.youtube.com/watch?v=Y0BSVuXW5bc

Le code source

using System;
using System.Collections.Generic;

namespace ConsoleAppProgrammationObjet
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("===== Nos ordinateurs =====");

            Portable p1 = new Portable("DELL Inspiron", 523456, 1800, "Intel core i5;NVIDIA RTX2060;16 GB", "17''");
            p1.Decrire();

            Macbook m1 = new Macbook("Macbook pro", 623456, 2800, "Intel core i5;Intel graphics BlaBlaBla;16 GB", "15 ''", "Leopard");
            m1.Decrire();

            List<Ordinateur> ordis = new List<Ordinateur>
            {
                new Ordinateur("HP Omen", 123456, 1500, "Intel core i7;NVIDIA RTX2080;16 GB"),
                new Ordinateur("Alienware Area 51", 223456, 2500, "Intel core i9;NVIDIA RTX3080;32 GB"),
                new Ordinateur("ASUS ROG", 323456, 1200, "Intel core i5;NVIDIA RTX2070;16 GB"),
                new Ordinateur("ACER Predator", 423456, 1600, "Intel core i7;NVIDIA RTX2070;8 GB"),
            };

            foreach(Ordinateur o in ordis)
            {
                o.Decrire();
            }

            Console.WriteLine("===== FIN =====");
        }
    }

    // Interface pour décrire un ordi
    interface IDescriptible
    {
        void Decrire();
    }

    // Ordinateur
    class Ordinateur : IDescriptible
    {
        // Propriétés, caractéristiques de la classe ...
        public string nom { get; set; }
        public int reference { get; set; }
        public int prix { get; set; }
        public string caractéristiques { get; set; }

        // Var statique
        static int nbOrdis = 0;

        // Constructeur
        public Ordinateur(string nom, int reference, int prix, string caractéristiques)
        {
            this.nom = nom;
            this.reference = reference;
            this.prix = prix;
            this.caractéristiques = caractéristiques;

            nbOrdis++;
        }

        public virtual void Decrire()
        {
            Console.WriteLine(nom + "(" + reference + ")");
            DecrireCaracteristiques();
            Console.WriteLine("Prix TTC : " + prix);

            if(nbOrdis > 5)
            {
                Console.WriteLine("Nous avons beaucoup d'orinateurs en stock !");
            }

            Console.WriteLine("***********************************************");
        }

        protected void DecrireCaracteristiques()
        {
            Console.WriteLine("*** Caractéristiques de l'ordinateur ***");
            string[] caracts = caractéristiques.Split(';');
            Console.WriteLine("CPU : " + caracts[0]);
            Console.WriteLine("GPU : " + caracts[1]);
            Console.WriteLine("RAM : " + caracts[2]);
        }
    }

    // Ordinateur Portable
    class Portable : Ordinateur
    {
        string tailleEcran;

        public Portable(string nom, int reference, int prix, string caractéristiques, string tailleEcran) : base(nom, reference, prix, caractéristiques)
        {
            this.tailleEcran = tailleEcran;
        }

        public override void Decrire()
        {
            base.Decrire();
            Console.WriteLine("Laptop avec un écran de " + tailleEcran);
        }
    }

    // Macbook 
    class Macbook : Portable
    {
        string os;

        public Macbook(string nom, int reference, int prix, string caracteristiques, 
            string tailleEcran, string os) : base(nom, reference, prix, caracteristiques, tailleEcran)
        {
            this.os = os;
        }

        public override void Decrire()
        {
            base.Decrire();
            Console.WriteLine("Macbook avec MAC OS version " + os);
        }
    }
}

Ma formation ultra complète

Si vous voulez aller beaucoup plus loin avec C# et le développement de logiciels réels avec WPF, je vous invite à regarder de mon cours complet avec 30 heures de vidéos :

Dans cette formation vous développerez plusieurs logiciels avec C# : Une application météo, un logiciel de monitoring du hardware de votre PC, un logiciel de nettoyage de disque, un lecteur audio, des jeux, des interfaces UI pour des restos, hôtels, recettes de cuisine… Tout un tas de projets à mettre dans votre CV de développeur C# WPF.

Étiquettes: