IN3R11
Cours 1.2
I. Introduction à la P.O.O.
I.1 Programmation "classique" (risques, maintenance)
I.2 P.O.O. (voir dessin)
I.3 Encapsulation (protection, données privées, services publics)
II. Classes et objets
II.1 Classe (description textuelle, statique, modèle)
II.2 Objet (en mémoire, dynamique, exemplaire)
II.3 Exemple: classe Cercle (x, y, rayon), objets c1 et c2
II.4 Attributs (état), méthodes (comportement), membres
II.5 Instance (instancier, variable d'instance)
III. Attributs et types de données (Java fortement typé)
III.1 Nombre entier, 4 octets, min/max (-2^31..+2^31-1)
Lire ce document (chapitres 1 & 2) sur la
représentation
des entiers et les débordements arithmétiques.
III.2 Valeur logique (booléenne), vrai ou faux (pas 0 ou 1), conditions/comparaisons
III.3 Mot ou phrase (chaîne de caractères)
III.4 Objet: exemple de la voiture (x, y, chassis, roueAv, rouAr)
III.5 Initialisation des attributs (par défaut selon le type, automatiquement)
IV. Méthodes et paramètres
IV.1 Méthode (définition, utilité, duplication de code)
IV.1.1 possède: type (1 des 4) + nom + paramètres = signature,
instructions = corps
IV.1.2 même nom, mais signatures différentes (surcharge)
IV.2 3 sortes
IV.2.1 fonction (retourne valeur, type de donnée, appelé sur un objet)
IV.2.2 procédure (ne retourne rien, type Néant, appelé sur un objet)
IV.2.3 constructeur (très spécial, pas de type, pas d'objet, automatique) :
initialisation des attributs
IV.3 Paramètres (type, nom, absence, ordre)
IV.4 Variable locale ({entre}, type, nom, ni attribut ni paramètre,
non initialisée, ni publique ni privée)
V. Syntaxe
V.1 Généralités
V.1.1 Différence min/maj (importante)
V.1.2 Espaces (entre 2 mots, un ou plusieurs, tabulation, retour-ligne)
V.1.3 Indentation (décalages/alignements reflètent la structure)
V.1.4 Présentation/style :
guide de style
V.1.5 vérifiée à la compilation, => erreurs =>
BIEN LIRE LES MESSAGES D'ERREUR
V.1.6 différentes des erreurs à l'exécution (exceptions)
V.2 Nommage (Obligations et Conventions "obligatoires")
V.2.1 O: Identificateur (lettres, chiffres, _, sans chiffre initial,
sauf mot réservé)
V.2.2 O: UneClasse =gt; fichier UneClasse.java (UneClasse.class)
V.2.3 C: aNomAttribut, verbeMethode(), pNomParametre, vNomVariableLocale
V.2.4 O: exception: le constructeur (= nom de la classe), contradiction ?
V.3 Types de données (uniquement Objet, pour l'instant)
V.3.1 Entier : Integer (+-/non nul/chiffres, défaut: 0)*
V.3.2 Booléen : Boolean (false/true, défaut: false)*
V.3.3 Chaîne : String ("des mots", défaut: "")*
V.3.4 Objet : Cercle (référence, défaut: null)
V.4 Déclarations
V.4.1 Classe : public class NomClasse {
attributs(o.i.), constructeurs(o.i.), autres méthodes(o.i.) }
(o.i.) = ordre indifférent
V.4.2 Attribut : private Type aNomAttribut;
V.4.3 Fonction : public Type nomFonction( paramètres ) {
instructions; return expression; }
V.4.4 Procédure : public void nomProcedure( paramètres ) {
instructions; }
V.4.5 Conctructeur : public NomClasse( paramètres ) {
instructions; }
V.4.6 Paramètres : Type pNom1, Type pNom2 ou rien
V.4.7 Variable locale : Type vNom;
V.5 Instructions simples
V.5.1 bloc, instruction
V.5.2 affectation (ou assignation) : sens
V.5.3 opérations : entiers (+ - * / %) et chaînes de caractères (+)
V.5.4 retour de résultat (fonction)
V.5.5 création d'un nouvel objet : Cercle c2 = new Cercle();
(appel du constructeur)
V.5.6 appel de méthode : c2.draw(); ou s= c2.surface(); (sur l'objet c2)
this.draw(); ou s= this.surface(); (sur l'objet courant)
V.5.7 classes *(V.3) spéciales : ne nécessitent pas d'appel de constructeur
- Integer vI; vI= 3; remplace vI= new Integer(3);
- Boolean vB; vB= true; remplace vB= new Boolean(true);
- String vS; vS= "mot"; remplace vS= new String("mot");
VI. Commentaires et documentation
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
non traité, voir TP1 et cours 2 :
VI.1 // jusqu'à la fin de la ligne (ignoré par compilateur)
VI.2 /* jusqu'à */ (multiligne, ignoré par compilateur)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VI.3 /** jusqu'à */ (multiligne, ignoré par compilateur mais JavaDoc)
VI.4 Conseils: /** */ avant chaque classe et avant chaque méthode
// au début de chaque ligne à "supprimer" plutôt que /* */
VI.5 Dans BlueJ, bouton implémentation / interface
-
Lire le poly
sections 1 à 4.1, 8, 10.0, 11.2, 12.0, 12.1
Dernière mise à jour :