39
Programmation 2 : Généralités Alexis Nasr (d’après les slides de Arnaud Labourel) 9 septembre 2020 Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 1 / 39

Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Programmation 2 : Généralités

Alexis Nasr (d’après les slides de Arnaud Labourel)

9 septembre 2020

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 1 / 39

Page 2: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Objectifs du cours

Apprendre à programmer avec des objetsI adopter le “penser objet”I connaître et savoir mettre en œuvre les concepts fondamentaux de la

programmation objetConnaître le langage JavaApprendre à coder proprementPréparer aux cours de

I Projet : initiation génie logiciel du semestre 4I Programmation et conception du semestre 5I Compilation du semestre 6

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 2 / 39

Page 3: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Organisation du cours

Volume horaire10 séances de cours d’1h30 (15h au total)22 séances de travaux pratiques de 2h (44h au total)

Évaluationun examen, probablement sur machine (60% de la note)un partiel sur papier (20% de la note)des rendus de travaux pratiques (20% de la note)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 3 / 39

Page 4: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

L’équipe pédagogique

Alexis Nasr (CM + TP 1)Shantanu Das (TP 2)Pacôme Perrotin (TP 3)X (TP 4)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 4 / 39

Page 5: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Informations

Tout le matériel du cours se trouve sur le site web :http://pageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2L’emploi du temps se trouve sur ADEEn cas de question ou problème, contacter votre encadrant de TP ou leresponsable du cours ([email protected])

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 5 / 39

Page 6: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Covid

Pour l’instant :I cours

en amphimasques obligatoires

I TPlimiter les déplacementsj’assurerai les permanences en salles de TPprivilégiez le travail sur vos ordinateurs personnelsvous venez à Luminy si vous avez des questions à me poser (de préférence unseul des deux membres d’un binôme se déplace)forums : un forum ametice pour chaque TP

Si ça se dégrade :I cours à distanceI plus de permanence pour les TP

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 6 / 39

Page 7: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Section 1

Contenu du cours

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 7 / 39

Page 8: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

S’initier à toutes les étapes du développement de logiciels

1 Analyser les besoins2 Spécifier les comportements du programme3 Choisir et éventuellement concevoir les solutions techniques4 Implémenter le programme (coder)5 Vérifier que le programme a le comportement spécifié (tester)6 Déployer le programme dans son environnement, fournir une documentation

dans le cas de bibliothèque7 Maintenir le programme (corriger les bugs, ajouter des fonctionnalités)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 8 / 39

Page 9: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Plan du cours

Cours 1Le penser objetVocabulaire programmation objetLa gestion de version avec le logiciel git

Cours 2Classes utiles et types primitifsStructures de contrôlesTypes paramétrésTests et développement

Cours 3Interfaces

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 9 / 39

Page 10: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Plan du cours

Cours 4Composition et délégationClasses abstraites et extensionExtension et accessibilité

Cours 5Surcharge de méthode/constructeursExceptionsLes énumérationsMot-clé final

Cours 6Commentaires et documentationStructure d’un projet et paquetsClasse interne

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 10 / 39

Page 11: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Plan du cours

Cours 7Types paramétrés (notions avancées)Interfaces (notions avancées)

Cours 8Une méthodologie pour bien nommerDes principes pour bien programmerLa gestion de projetTests unitaires et développement par les tests (TDD)Les principes solides

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 11 / 39

Page 12: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Travaux Pratiques

6 ou 7 TP à réaliser en une semaineI début la semaine prochaineI le TP est à rendre avant dimanche minuit sur etulab

1 mini projet à réaliser en 3 ou 4 semainesLes TP sont faits en binôme

I la composition des binômes doit être faite avant la première séance de TPI une fois un binôme constitué, vous envoyez un mail à votre encadrant de TP

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 12 / 39

Page 13: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Outils pour les TP

un ordinateur

une machine virtuelle JAVA (JVM)

un compilateur JAVA

un éditeur

git

gradle

junit

vous pouvez utiliser IntelliJ mais ce n’est pas obligatoire et déconseillé pour lespremiers TP

I pour compiler et exécuter un programme JAVA depuis le terminaljavac MaClasse.javaproduit MaClasse.classjava MaClasseexécute la méthode main de MaClasse

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 13 / 39

Page 14: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Section 2

Le penser objet

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 14 / 39

Page 15: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Analyse d’un problème en programmation objet

Penser objet : décomposer le programme en objets

Quels sont les objets nécessaires à la résolution du problème ?

⇒ décomposition du problème en objets

À quels modèles des objets correspondent-il ?

⇒ définition des classes

Quels sont les fonctionnalités/opérations dont on doit/veut pouvoir disposersur ces objets ?

⇒ définition des méthodes

Quelle est la structure des données de l’objet ?

⇒ définition des attributs des classes

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 15 / 39

Page 16: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Exemple de problème

un catalogue regroupe des articles, il permet de trouver un article à partir desa référence.

un article est caractérisé par un prix et une référence que l’on peut obtenir. Onveux aussi pouvoir déterminer si un article est plus cher qu’un autre

une commande est créée pour un client et un catalogue donnés, on peutajouter des articles à une commande, accéder à la liste des articles commandésainsi qu’au prix total des articles et au montant des frais de port de lacommande.

un client peut créer une commande pour un catalogue et commander danscette commande des articles à partir de leur références.

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 16 / 39

Page 17: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Classes du problèmes

un catalogue regroupe des articles, il permet de trouver un article à partir desa référence.

un article est caractérisé par un prix et une référence que l’on peut obtenir.On veux aussi pouvoir déterminer si un article est plus cher qu’un autre

une commande est créée pour un client et un catalogue donnés, on peutajouter des articles à une commande, accéder à la liste des articlescommandés ainsi qu’au prix total des articles et au montant des frais de portde la commande.

un client peut créer une commande pour un catalogue et commander danscette commande des articles à partir de leur références.

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 17 / 39

Page 18: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Méthodes

un catalogue regroupe des articles, il permet de trouver un article à partir desa référence.

un article est caractérisé par un prix et une référence que l’on peut obtenir.On veux aussi pouvoir déterminer si un article est plus cher qu’un autre

une commande est créée pour un client et un catalogue donnés, on peutajouter des articles à une commande, accéder à la liste des articlescommandés ainsi qu’au prix total des articles et au montant des frais de portde la commande.

un client peut créer une commande pour un catalogue et commander danscette commande des articles à partir de leur références.

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 18 / 39

Page 19: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Méthodes de la classe Catalog

Description d’un catalogueun catalogue regroupe des articles, il permet de trouver un article à partir de saréférence.

Méthodes :Item getItem(String reference)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 19 / 39

Page 20: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Méthodes de la classe Item

Description d’un articleun article est caractérisé par un prix et une référence que l’on peut obtenir. Onveux aussi pouvoir déterminer si un article est plus cher qu’un autre

Méthodes :double getPrice()String getReference()boolean isMoreExpensiveThan(Item other)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 20 / 39

Page 21: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Constructeurs et méthodes de la classe Order

Description d’une commandeune commande est créée pour un client et un catalogue donnés, on peut ajouterdes articles à une commande, accéder à la liste des articles commandés ainsi queprix total des articles et le montant des frais de port de la commande.

Méthodes et constructeurs :Order(Client client, Catalog catalog) (constructeur)void addItem(Item item)List<Item> allItems()double getTotalPriceOfItems()double getShippingCost()Client getClient()Catalog getCatalog()

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 21 / 39

Page 22: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Constructeurs et méthodes de la classe Client

Description d’un clientun client peut créer une commande pour un catalogue et commander dans cettecommande des articles à partir de leur références.

Méthodes :Order createOrder(Catalog catalog)void orderItem(Order order, String reference)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 22 / 39

Page 23: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Section 3

Vocabulaire de la programmation objet

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 23 / 39

Page 24: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Objet

Un objet :

peut être construitest structuré : il est constitué d’un ensemble d’attributs (données de l’objet)possède un état : la valeur de ses attributspossède une interface : les opérations applicables, appelées méthodes

Objet et référenceChaque objet est identifié par une adresse mémoire appelée référenceC’est cette référence qui permet d’accéder à l’objet

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 24 / 39

Page 25: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Syntaxe des objets

Construire un objetClasse objet = new Classe(arguments);

Après l’appel au constructeur et l’affectation, la variable contient la référencede l’objetSans appel au constructeur, la variable contient null (adresse pointant versrien)

Accéder à un attribut d’un objetobjet.attribut = ...;

Appeler une méthode d’un objetobjet.méthode(arguments)

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 25 / 39

Page 26: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Attention au null

Si une variable ne contient pas de référence à un objet, tout accès à :

une de ses méthodesun de ses attributs

générera une NullPointerException (davantage de détails sur les exceptionsdans un cours ultérieur).

Régles d’orToujours penser à construire les objets dont on a besoin.Éviter si possible d’utiliser null dans son code.

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 26 / 39

Page 27: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Classe

Une classe (d’objet) définit des :

constructeurs : des façons de construire/instancier les objets (instances de laclasse)attributs (champs, propriétés ou données membres) : la structure des objetsde la classeméthodes : le comportement des objets de la classe

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 27 / 39

Page 28: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Exemple de syntaxe de définition d’une classe

public class NameOfTheClass{public final Type1 attribute1 = new Type1(arguments);private Type2 attribute2;

public NameOfTheClass(arguments){// constructor code

}

public Type2 getAttribute2(){return this.attribute2;

}}

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 28 / 39

Page 29: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Déclaration d’attributs

Exemples sans initialisationprivate int count;private final Color backgroundColor;private final String name;

Exemples avec initialisationprivate int count = 0;private final Color backColor = new Color(0.5,0.2,0);private final String name = "John Doe";⇒ objets créés avec des valeurs de bases pour les attributs.

Mot-clésprivate : accessible que dans la classepublic : accessible partoutfinal : une seule affectation avant la fin de la construction

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 29 / 39

Page 30: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Déclaration d’une méthode

visibilité + type de retour + nom +(type paramètre 1 + nom paramètre 1, ...) + {

instructions}

Exemplespublic int getCount() { ... }public void setCount(int newCount) { ... }public void launchMissile(GPSCoordinate coord) { ... }private Vector3D getAcceleration() { ... }

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 30 / 39

Page 31: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Corps d’une méthode

Le corps d’une méthode ou d’une classe est composé :

d’instructions,de structures de contrôle, permettant de décider quelles instructions exécuter.

RemarquesSans structures de contrôle, les instructions sont exécutées une par une, dansle sens de lecture.On écrit généralement une instruction ou une structure de contrôle par ligne.On utilise l’indentation pour mettre en valeur les structures de contrôle.

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 31 / 39

Page 32: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Déclaration d’une variable

Une variable est un espace mémoire nommé pour stocker une valeurmomentanément.

Portée : une variable (qui n’est pas un attribut) existe :

depuis le moment où elle est déclaréejusqu’à la sortie du bloc { . . . } où elle est définie.

Remarqueschaque variable possède :

I un type (qui peut correspondre à un type primitif, une classe ou une interface),et ne peut contenir que des valeurs de ce type.

I une valeur (les variables non-affectées ont une valeur par défaut : 0, null, . . . )int count;Vector2D position;

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 32 / 39

Page 33: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

L’affectation

L’affectation est l’opération consistant à mettre une valeur dans un espace mémoiredéfinit par une variable (l-value) :

L’affectation est soumise aux contraintes de types: la valeur stockée doit être d’untype correspondant à celui déclaré.

count = 12;count = count + 4;position = new Vector(3, -2.5);

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 33 / 39

Page 34: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

la construction

La création d’un nouvel objet se fait avec le mot-clé new, qui déclenche :1 l’allocation d’un espace mémoire pour contenir le nouvel objet,2 l’initialisation des propriétés de cet objet avec les valeur de bases,3 l’appel au constructeur de l’objet,4 le retour de la référence (adresse mémoire) de l’objet par l’instruction

new Vector(3,-2.5);new Spaceship();new ArrayList<Integer>();

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 34 / 39

Page 35: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Le mot-clé return

Une méthode peut retourner une valeur lorsqu’elle a terminé son travail, en utilisantle mot-clé return.

Lors de l’évaluation de l’instruction return, l’expression après le return (lerésultat) est d’abord évaluée (si elle existe), ensuite l’exécution de la méthode estinterrompue.

Le résultat est retourné au niveau de l’instruction ayant fait l’appel de méthode.

Exemples d’utilisation de returnreturn;return 42;return new Vector(-5,2.333);

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 35 / 39

Page 36: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Les expressions

Les valeurs sont définies par des expressions :

des littéraux : 0.01, -42, "toto", . . .combinaison d’expressions par des opérateurs +, *, /, -variables et attributs,appels de méthode (ayant un type de retour autre que void) ou deconstructeurs

Les expressions apparaissent :

en membre droit d’une affectation,en paramètre d’un appel de méthode, d’un constructeur,dans une condition de boucle ou de testaprès le mot-clé return

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 36 / 39

Page 37: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Section 4

À retenir absolument

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 37 / 39

Page 38: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Classe

Une classe (d’objet) définit des :

constructeurs : des façons de construire/instancier les objets (instances de laclasse)attributs (champs, propriétés ou données membres) : la structure des objetsde la classeméthodes : le comportement des objets de la classe

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 38 / 39

Page 39: Programmation 2 : Généralitéspageperso.lif.univ-mrs.fr/~alexis.nasr/Ens/PROG2/cours1_an_slides.pdf · Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités

Syntaxe de définition d’une classe

public NameOfTheClass{public final Type1 attribute1;private Type2 attribute2;

public NameOfTheClass(...){// constructor code

}

public getAttribute2(){return this.attribute2;

}}

Alexis Nasr (d’après les slides de Arnaud Labourel) Programmation 2 : Généralités 39 / 39