IN101
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 autour de la classe et non de l'objet, données privées, services publics)
II. Classes et objets
II.1 Classe (modèle, description textuelle, statique, emporte-pièce)
II.2 Objet (exemplaire, en mémoire, dynamique, morceau de pàte)
II.3 Exemple: classe Cercle (x, y, rayon), objets c1 et c2 (voir dessin)
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 Espacement (significatif entre 2 mots/indifférent sinon, un ou plusieurs,
[ESPACE]/[TABULATION]/[ENTREE] )
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 C: UneClasse => O: 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;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
non traité, voir TP1 et cours 2 :
V.5 Instructions simples
V.5.1 une instruction, { des instructions }
= un bloc = une instruction composée
V.5.2 affectation (ou assignation ou <---) non symétrique :
vNom= expression;
V.5.3 opérations : entiers (+ - * / %) et chaînes de caractères (+),
==> expressions
V.5.4 retour de résultat (fonction uniquement) :
return expression;
V.5.5 création d'un nouvel objet :
c2= new Cercle( paramètres );
(appel automatique du constructeur) si Cercle c2; auparavant
(voir dessin)
V.5.6 appel de méthode : c2.draw(); ou
s= c2.surface(); (sur l'objet c2)
this.draw(); ou
s= this.surface();
(this = 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");
V.5.8 Accès à un attribut (dans la même classe) :
objet.aNomAttribut ou
this.aNomAttribut
VI. Commentaires et documentation
VI.1 // jusqu'à la fin de la ligne (ignoré par compilateur)
VI.2 /* jusqu'à */ (milieu de ligne ou 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
...
Dernière mise à jour :