SlideShare a Scribd company logo
1 of 30
Présentation C#
Jean-Baptiste Vigneron
j.vigneron@epsi.fr
Introduction
• Langage de programmation crée par Anders Heljberg
(Microsoft) en 2001
• Langage orienté objet à typage fort, inspiré de C++ et Java
• Permet d’utiliser le framework .NET de manière optimale
• Dernière version: 4.5.1 (Octobre 2013)
• Classement TIOB des langages les plus utilisés au monde:
5ème en janvier 2014
MOBILE
Windows Phone
WEB
ASP.NET, Silverlight, WebAPI…
PC
WPF, Modern Style Apps, Windows Forms…
XBOX & KINECT
DirectX, XNA, WPF…
CLOUD
Windows Azure
Disponible pour tous ces plateformes
Démarrage
• Déclaration d’une variable
int a;
int b = 5;
double c = a + b;
• Assignation d’une valeur
a = 6;
c = a + 4
c += 9;
• Déclaration d’une constante
const float PI = 3.14;
• Commentaire
// Commentaire sur une ligne
/*
* Commentaires sur plusieurs lignes
*/
Exemples de types existants
C# C / C++ VB
int int Integer
long long Long
char char
string String String
bool bool Boolean
double double Double
float float Variant
decimal float Decimal
Opérateurs
a + b Addition
a – b Soustraction
a / b Division
a % b Modulo
a += b a est égal à la somme de a et de b
a -= b a est égal à la soustraction entre a et b
a == b Egal
a != b Différent
a > b Supérieur
a >= b Supérieur ou égal
a < b Inférieur
a <= b Inférieur ou égal
• Arithmétiques
• Comparaison
Programmation orientée objet
• Définition
• Une classe comporte un ensemble de variables (appelés
attributs) et de procédures/fonctions (appelés
méthodes). La classe représente le moule de l’objet.
• Un objet est une instance créée à partir d’une classe.
• La POO permet de se rapprocher de la réalité. En effet,
les variables représentent l’état de l’objet, alors que les
méthodes définissent son comportement.
Programmation orientée objet
• Exemple 1:
• Une classe: Une personne
• Des objets: Paul, Pierre, Sabine…
• Attributs: Couleur des cheveux, Taille, Poids, Sexe…
• Comportements: Parler, Courir, Marcher, Sourir…
• Exemple 2:
• Une classe: Une voiture
• Des objets: Ford Fiesta, Peugeot 208, Audi R8…
• Attributs: Couleur, Type de carburant, Nombre portes…
• Comportements: Démarrer, Accélérer, Freiner, Tourner, Stop…
Programmation orientée objet
• Notes:
• Dans une classe, les éléments ont 3 niveaux de visibilité : Privé
(Private), Protégé (Protected) et Public.
• Les attributs est toujours PRIVES. Pour lire ou modifier une valeur,
on créer une méthode publique Get…() et une autre méthode
publique Set…().
Ainsi, il est interdit de faire maVoiture._couleur = « Rouge ». A la place
on utilise maVoiture.SetCouleur(« Rouge »).
• En C#, les classes peuvent comporter également des
« propriétés ». Elles permettent d’alléger la syntaxe et ainsi
finalement de faire maVoiture.Couleur = Rouge.
• Déclaration d’une classe sans
propriétés
class Personne
{
// Attribut
private string _nom;
// Getter
public string GetNom()
{
return _nom;
}
// Setter
public void SetNom(string nom)
{
_nom = nom;
}
// Méthode
public void Parler()
{
Console.WriteLine(«{0} dit bonjour.», _nom);
}
}
Programmation orientée objet
• Simplification en utilisant les propriétés
class Personne
{
// Propriété
public Nom { get; set; }
// Méthode
public void Parler()
{
Console.WriteLine(«{0} dit bonjour.», Nom);
}
}
Programmation orientée objet
Programmation orientée objet
• Sans propriétés
class Personne
{
private int _age;
public int GetAge()
{
return _age;
}
public void SetAge(int age)
{
_age = age;
}
}
• Avec propriétés
class Personne
{
private int _age;
public int Age
{
get { return _age; }
set
{
if(value > 0)
{
age = value;
}
}
}
}
Programmation objet
• Notes:
• Une classe peut comporter des constructeurs. Ce sont des méthodes qui
permettent d’initialiser les attributs. Ils sont appelés lorsqu’un objet est
instancié.
• Une classe peut également comporter un seul destructeur. Il est appelé
lorsque l’objet est détruit et permet par exemple de libérer des ressources.
• Un constructeur possède le même nom que la classe mais n’a pas de type
de retour.
• On ne peut appeler qu’un seul constructeur, mais un constructeur peut en
appeler un autre.
• Un destructeur possède le même nom avec un « ~ » devant et ne possède
pas de type de retour.
Programmation orientée objet
• Constructeurs et destructeur
class Personne
{
// Constructeur par défaut
public Personne()
{
Nom = « Dupont »;
Age = 17;
}
// Constructeur spécialisé (avec un ou plusieurs paramètres)
public Personne(string nom, int age)
{
Nom = nom;
Age = age;
}
// Un seul et unique destructeur
public ~Personne()
{
Console.WriteLine(«{0} est détruit.», Nom);
}
}
Programmation orientée objet
• Instanciation d’une objet / Création d’une instance de classe
// Utilisation du constructeur par défaut
Personne p1 = new Personne();
// Utilisation du constructeur spécialisé
Personne p2 = new Personne(« Jean »);
p1.Nom = « Pierre »;
p1._nom = « Paul »; // Attribut privé
p1.Parler();
p1.Age = 21;
Héritage
• Définition:
• En POO, il est possible de créer des classes dérivant d’une autre. On
appelle ça l’héritage.
• On appelle classe mère la classe de base. On appelle classes filles celles
qui dérivent.
• Les classes filles possèdent les attributs protégés et publics de la classe
mère et apportent chacune leur propre lot d’attributs et de méthodes à leur
tour.
• En C#, une classe « fille » ne peut dériver que d’une seule classe « mère ».
• Une classe fille peut redéfinir une méthode qui existe déjà dans la classe
mère.
Héritage
• Exemple 1:
• Classe mère: Vehicule
• Classes filles: Voiture, Camion…
• Exemple 2:
• Classe mère: Compte bancaire
• Classes filles: Compte courant, Livret épargne…
• Exemple 3:
• Classe mère: Forme
• Classes filles: Rectangle, Cercle, Carré…
Héritage
• Déclaration:
class Vehicule
{
protected int _nombreCV;
private string _couleur;
}
class Camion : Vehicule
{
private double _longueurRemorque;
public Voiture(int nombreCV, double longueurRemorque)
{
_longueurRemorque = longueurRemorque;
_nombreCV = nombreCV; // Protégé
_couleur = « Rouge »; // Privé
}
}
Classe et méthode abstraite
• Définition:
• Une classe peut être définie comme abstraite, c’est-à-
dire qu’il n’est pas possible de l’instancier. Il faut donc
instancier une classe fille.
• Une méthode abstraite, est une méthode qui existe
dans une classe mais qui ne possède pas de
corps/d’implémentation. Le comportement est donc
défini dans la/les classe(s) fille(s).
Interfaces
• Définition
• Une interface est un contrat de propriétés et/ou de méthodes
qu’une classe s’engage à respecter.
• Le nom d’une interface comme par un « I » en C#.
• Pour une interface, on crée un fichier .cs
• Contrairement à une classe, une interface ne contient pas de
corps pour les méthodes. Elle définit juste les propriétés ou
les méthodes que la classe doit implémenter.
Interfaces
• Déclaration
interface IAnimal
{
int Age { get; set; }
void Crier();
void Courir(float vitesse);
}
Interfaces
• Implémentation
class Lievre : IAnimal
{
public int Age { get; set; }
public void Crier()
{
Console.WriteLine(« Le lièvre couine »);
}
public void Courir(float vitesse)
{
Console.WriteLine(« Le lièvre court à {0} km/h», vitesse);
}
}
Interfaces
• Implémentation
class Tortue : IAnimal
{
public int Age { get; set; }
public void Crier()
{
Console.WriteLine(« La tortue cracrapète »);
}
public void Courir(float vitesse)
{
Console.WriteLine(« La tortue marche à {0} km/h», vitesse);
}
}
Interfaces
• Utilisation
IAnimal a1 = new Tortue();
a1.Age = 200;
a1.Courir(2); // Affiche « La tortue marche à 2 km/h »
a1 = new Lievre();
a1.Age = 5;
a1.Crier(); // Affiche « Le lièvre couine »
Interfaces
• Notes
• Si une classe implémente une interface, elle DOIT respecter les propriétés et les
méthodes contenues dans celle-ci.
• Dans une classe qui implémente une interface, les éléments sont forcément publics.
• Les interfaces ont plusieurs utilités:
• Niveau d’abstraction supplémentaire: il n’est pas nécessaire de savoir si
l’animal est un lion ou une tortue. L’important est de savoir qu’il a un âge, qu’il
peut crier et courir.
• Filtrage: Si une classe implémente beaucoup de méthodes, on peut utiliser les
interfaces pour « filtrer » ces méthodes afin que celles qui nous intéressent
soient uniquement proposés par l’auto-complétion.
• Une interface peut implémenter une ou plusieurs autres interfaces.
Interfaces
• Interfaces les plus frequemments utilisées
- IDisposable
- IEnumerable
- ICollection
- IList
- IValueConverter
- IEqualityComparer
- ICommand
- …
Static
• Définition
• Un attribut, une méthode ou une propriété peut être déclarée statique à
l’aide du mot-clé static.
• Un élément statique est accessible depuis le nom de la classe directement
(ex: Personne.AgeMajorite, Math.PI) et non depuis une instance/un objet.
• Les éléments statiques sont donc crées une seul fois et sont accessibles à
tout moment.
• Une classe peut être déclarée statique. Elle n’est pas instanciable et tous
ses attributs, propriétés et méthodes doivent être forcément statiques.
Static
• Déclaration
class Personne
{
public static int AgeMajorite = 18;
public static bool EstMajeur(int age)
{
return age >= AgeMajorite;
}
}
Static
• Utilisation
bool majeur = Personne.EstMajeur(21);
int ageMajorite = Personne.AgeMajorite;
Console.WriteLine(«Bienvenue ! »);
BLOGS DES EVANGELISTES ET DES
EXPERTS MICROSOFT
COACHS VIDEOS MSDN
http://msdn.microsoft.com/fr-fr/bb899456
MSDN LIBRARY
http://msdn.microsoft.com/
COMMUNAUTES DES DEVELOPPEURS
SUR FACEBOOK
TUTOS OPENCLASSROMMS (EX-SDZ)
http://fr.openclassrooms.com/informatique/cours/apprenez
-a-developper-en-c
Ressources pour bien débuter avec C#

More Related Content

What's hot

POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 ExceptionsMouna Torjmen
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptionsAmir Souissi
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Cours java avance débutant facile l'essentiel swing ,events
Cours java avance débutant facile l'essentiel swing ,events Cours java avance débutant facile l'essentiel swing ,events
Cours java avance débutant facile l'essentiel swing ,events Houssem Hamrouni
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIJihenHedhli1
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 

What's hot (20)

POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Cours java
Cours javaCours java
Cours java
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Cours java avance débutant facile l'essentiel swing ,events
Cours java avance débutant facile l'essentiel swing ,events Cours java avance débutant facile l'essentiel swing ,events
Cours java avance débutant facile l'essentiel swing ,events
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Java RMI
Java RMIJava RMI
Java RMI
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 

Viewers also liked

Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oraclewebreaker
 
C# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL ServerC# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL ServerMahfoud EL HOUDAIGUI
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oraclewebreaker
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oraclewebreaker
 
Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...
Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...
Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...PMB-BUG
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupewebreaker
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédiblePatrick Guimonet
 
GP Chapitre 2 : Les méthodes de prévision
GP Chapitre 2 : Les méthodes de prévision GP Chapitre 2 : Les méthodes de prévision
GP Chapitre 2 : Les méthodes de prévision ibtissam el hassani
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oraclewebreaker
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oraclewebreaker
 
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL OracleAfficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oraclewebreaker
 

Viewers also liked (20)

Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7
 
Pattern MVVM avec MVVM Light Toolkit
Pattern MVVM avec MVVM Light ToolkitPattern MVVM avec MVVM Light Toolkit
Pattern MVVM avec MVVM Light Toolkit
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
 
.NET Framework
.NET Framework.NET Framework
.NET Framework
 
Compte-rendu Agile Tour 2014 à Lille
Compte-rendu Agile Tour 2014 à LilleCompte-rendu Agile Tour 2014 à Lille
Compte-rendu Agile Tour 2014 à Lille
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oracle
 
C# dates and times date formats
C# dates and times  date formatsC# dates and times  date formats
C# dates and times date formats
 
C# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL ServerC# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL Server
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oracle
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
 
Sql
SqlSql
Sql
 
Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...
Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...
Gestion avancée avec PMB: traitement par lots (paniers) et SQL: quelques exem...
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible
 
GP Chapitre 2 : Les méthodes de prévision
GP Chapitre 2 : Les méthodes de prévision GP Chapitre 2 : Les méthodes de prévision
GP Chapitre 2 : Les méthodes de prévision
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL OracleAfficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
 

Similar to Langage C#

Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...Hamza SAID
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objetsAbdoulaye Dieng
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scalaSOAT
 
Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#Youness Boukouchi
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Ch4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdfCh4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdfRihabBENLAMINE
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011yassine kchiri
 
Ch4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptxCh4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptxRihabBENLAMINE
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetMohammed Jaafar
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancéeMahfoud EL HOUDAIGUI
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetkemenaran
 

Similar to Langage C# (20)

XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objets
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#
 
POO
POOPOO
POO
 
Java
JavaJava
Java
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Ch4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdfCh4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdf
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011
 
Ch4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptxCh4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptx
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté Objet
 
Bonnes pratiques développement android
Bonnes pratiques développement androidBonnes pratiques développement android
Bonnes pratiques développement android
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
 

Langage C#

  • 2. Introduction • Langage de programmation crée par Anders Heljberg (Microsoft) en 2001 • Langage orienté objet à typage fort, inspiré de C++ et Java • Permet d’utiliser le framework .NET de manière optimale • Dernière version: 4.5.1 (Octobre 2013) • Classement TIOB des langages les plus utilisés au monde: 5ème en janvier 2014
  • 3. MOBILE Windows Phone WEB ASP.NET, Silverlight, WebAPI… PC WPF, Modern Style Apps, Windows Forms… XBOX & KINECT DirectX, XNA, WPF… CLOUD Windows Azure Disponible pour tous ces plateformes
  • 4. Démarrage • Déclaration d’une variable int a; int b = 5; double c = a + b; • Assignation d’une valeur a = 6; c = a + 4 c += 9; • Déclaration d’une constante const float PI = 3.14; • Commentaire // Commentaire sur une ligne /* * Commentaires sur plusieurs lignes */
  • 5. Exemples de types existants C# C / C++ VB int int Integer long long Long char char string String String bool bool Boolean double double Double float float Variant decimal float Decimal
  • 6. Opérateurs a + b Addition a – b Soustraction a / b Division a % b Modulo a += b a est égal à la somme de a et de b a -= b a est égal à la soustraction entre a et b a == b Egal a != b Différent a > b Supérieur a >= b Supérieur ou égal a < b Inférieur a <= b Inférieur ou égal • Arithmétiques • Comparaison
  • 7. Programmation orientée objet • Définition • Une classe comporte un ensemble de variables (appelés attributs) et de procédures/fonctions (appelés méthodes). La classe représente le moule de l’objet. • Un objet est une instance créée à partir d’une classe. • La POO permet de se rapprocher de la réalité. En effet, les variables représentent l’état de l’objet, alors que les méthodes définissent son comportement.
  • 8. Programmation orientée objet • Exemple 1: • Une classe: Une personne • Des objets: Paul, Pierre, Sabine… • Attributs: Couleur des cheveux, Taille, Poids, Sexe… • Comportements: Parler, Courir, Marcher, Sourir… • Exemple 2: • Une classe: Une voiture • Des objets: Ford Fiesta, Peugeot 208, Audi R8… • Attributs: Couleur, Type de carburant, Nombre portes… • Comportements: Démarrer, Accélérer, Freiner, Tourner, Stop…
  • 9. Programmation orientée objet • Notes: • Dans une classe, les éléments ont 3 niveaux de visibilité : Privé (Private), Protégé (Protected) et Public. • Les attributs est toujours PRIVES. Pour lire ou modifier une valeur, on créer une méthode publique Get…() et une autre méthode publique Set…(). Ainsi, il est interdit de faire maVoiture._couleur = « Rouge ». A la place on utilise maVoiture.SetCouleur(« Rouge »). • En C#, les classes peuvent comporter également des « propriétés ». Elles permettent d’alléger la syntaxe et ainsi finalement de faire maVoiture.Couleur = Rouge.
  • 10. • Déclaration d’une classe sans propriétés class Personne { // Attribut private string _nom; // Getter public string GetNom() { return _nom; } // Setter public void SetNom(string nom) { _nom = nom; } // Méthode public void Parler() { Console.WriteLine(«{0} dit bonjour.», _nom); } } Programmation orientée objet
  • 11. • Simplification en utilisant les propriétés class Personne { // Propriété public Nom { get; set; } // Méthode public void Parler() { Console.WriteLine(«{0} dit bonjour.», Nom); } } Programmation orientée objet
  • 12. Programmation orientée objet • Sans propriétés class Personne { private int _age; public int GetAge() { return _age; } public void SetAge(int age) { _age = age; } } • Avec propriétés class Personne { private int _age; public int Age { get { return _age; } set { if(value > 0) { age = value; } } } }
  • 13. Programmation objet • Notes: • Une classe peut comporter des constructeurs. Ce sont des méthodes qui permettent d’initialiser les attributs. Ils sont appelés lorsqu’un objet est instancié. • Une classe peut également comporter un seul destructeur. Il est appelé lorsque l’objet est détruit et permet par exemple de libérer des ressources. • Un constructeur possède le même nom que la classe mais n’a pas de type de retour. • On ne peut appeler qu’un seul constructeur, mais un constructeur peut en appeler un autre. • Un destructeur possède le même nom avec un « ~ » devant et ne possède pas de type de retour.
  • 14. Programmation orientée objet • Constructeurs et destructeur class Personne { // Constructeur par défaut public Personne() { Nom = « Dupont »; Age = 17; } // Constructeur spécialisé (avec un ou plusieurs paramètres) public Personne(string nom, int age) { Nom = nom; Age = age; } // Un seul et unique destructeur public ~Personne() { Console.WriteLine(«{0} est détruit.», Nom); } }
  • 15. Programmation orientée objet • Instanciation d’une objet / Création d’une instance de classe // Utilisation du constructeur par défaut Personne p1 = new Personne(); // Utilisation du constructeur spécialisé Personne p2 = new Personne(« Jean »); p1.Nom = « Pierre »; p1._nom = « Paul »; // Attribut privé p1.Parler(); p1.Age = 21;
  • 16. Héritage • Définition: • En POO, il est possible de créer des classes dérivant d’une autre. On appelle ça l’héritage. • On appelle classe mère la classe de base. On appelle classes filles celles qui dérivent. • Les classes filles possèdent les attributs protégés et publics de la classe mère et apportent chacune leur propre lot d’attributs et de méthodes à leur tour. • En C#, une classe « fille » ne peut dériver que d’une seule classe « mère ». • Une classe fille peut redéfinir une méthode qui existe déjà dans la classe mère.
  • 17. Héritage • Exemple 1: • Classe mère: Vehicule • Classes filles: Voiture, Camion… • Exemple 2: • Classe mère: Compte bancaire • Classes filles: Compte courant, Livret épargne… • Exemple 3: • Classe mère: Forme • Classes filles: Rectangle, Cercle, Carré…
  • 18. Héritage • Déclaration: class Vehicule { protected int _nombreCV; private string _couleur; } class Camion : Vehicule { private double _longueurRemorque; public Voiture(int nombreCV, double longueurRemorque) { _longueurRemorque = longueurRemorque; _nombreCV = nombreCV; // Protégé _couleur = « Rouge »; // Privé } }
  • 19. Classe et méthode abstraite • Définition: • Une classe peut être définie comme abstraite, c’est-à- dire qu’il n’est pas possible de l’instancier. Il faut donc instancier une classe fille. • Une méthode abstraite, est une méthode qui existe dans une classe mais qui ne possède pas de corps/d’implémentation. Le comportement est donc défini dans la/les classe(s) fille(s).
  • 20. Interfaces • Définition • Une interface est un contrat de propriétés et/ou de méthodes qu’une classe s’engage à respecter. • Le nom d’une interface comme par un « I » en C#. • Pour une interface, on crée un fichier .cs • Contrairement à une classe, une interface ne contient pas de corps pour les méthodes. Elle définit juste les propriétés ou les méthodes que la classe doit implémenter.
  • 21. Interfaces • Déclaration interface IAnimal { int Age { get; set; } void Crier(); void Courir(float vitesse); }
  • 22. Interfaces • Implémentation class Lievre : IAnimal { public int Age { get; set; } public void Crier() { Console.WriteLine(« Le lièvre couine »); } public void Courir(float vitesse) { Console.WriteLine(« Le lièvre court à {0} km/h», vitesse); } }
  • 23. Interfaces • Implémentation class Tortue : IAnimal { public int Age { get; set; } public void Crier() { Console.WriteLine(« La tortue cracrapète »); } public void Courir(float vitesse) { Console.WriteLine(« La tortue marche à {0} km/h», vitesse); } }
  • 24. Interfaces • Utilisation IAnimal a1 = new Tortue(); a1.Age = 200; a1.Courir(2); // Affiche « La tortue marche à 2 km/h » a1 = new Lievre(); a1.Age = 5; a1.Crier(); // Affiche « Le lièvre couine »
  • 25. Interfaces • Notes • Si une classe implémente une interface, elle DOIT respecter les propriétés et les méthodes contenues dans celle-ci. • Dans une classe qui implémente une interface, les éléments sont forcément publics. • Les interfaces ont plusieurs utilités: • Niveau d’abstraction supplémentaire: il n’est pas nécessaire de savoir si l’animal est un lion ou une tortue. L’important est de savoir qu’il a un âge, qu’il peut crier et courir. • Filtrage: Si une classe implémente beaucoup de méthodes, on peut utiliser les interfaces pour « filtrer » ces méthodes afin que celles qui nous intéressent soient uniquement proposés par l’auto-complétion. • Une interface peut implémenter une ou plusieurs autres interfaces.
  • 26. Interfaces • Interfaces les plus frequemments utilisées - IDisposable - IEnumerable - ICollection - IList - IValueConverter - IEqualityComparer - ICommand - …
  • 27. Static • Définition • Un attribut, une méthode ou une propriété peut être déclarée statique à l’aide du mot-clé static. • Un élément statique est accessible depuis le nom de la classe directement (ex: Personne.AgeMajorite, Math.PI) et non depuis une instance/un objet. • Les éléments statiques sont donc crées une seul fois et sont accessibles à tout moment. • Une classe peut être déclarée statique. Elle n’est pas instanciable et tous ses attributs, propriétés et méthodes doivent être forcément statiques.
  • 28. Static • Déclaration class Personne { public static int AgeMajorite = 18; public static bool EstMajeur(int age) { return age >= AgeMajorite; } }
  • 29. Static • Utilisation bool majeur = Personne.EstMajeur(21); int ageMajorite = Personne.AgeMajorite; Console.WriteLine(«Bienvenue ! »);
  • 30. BLOGS DES EVANGELISTES ET DES EXPERTS MICROSOFT COACHS VIDEOS MSDN http://msdn.microsoft.com/fr-fr/bb899456 MSDN LIBRARY http://msdn.microsoft.com/ COMMUNAUTES DES DEVELOPPEURS SUR FACEBOOK TUTOS OPENCLASSROMMS (EX-SDZ) http://fr.openclassrooms.com/informatique/cours/apprenez -a-developper-en-c Ressources pour bien débuter avec C#