IN101
Cours 2
-
I. Objets et références
I.1 création
- Circle vC1;
- vC1= new Circle( 10, 20, 5 ); vC1---->[10|20|5]
- référence, pointeur, adresse (reference type = type objet)
I.2 recopie
- Circle vC2 =new Circle( 0, 0, 35 ); vC2---->[0|0|35]
- vC1= vC2;
- vC1.doubleSize(); <==> vc2.doubleSize(); ==> pas de sauvegarde !
I.3 Exemple: Voiture
- Voiture v1 =new Voiture(); Voiture v2 =v1; ==> v1 et v2 pointent au même endroit
- Voiture v3 =recopie_des_attributs_de(v1); ==> le premier attribut de v1 pointe sur le même objet
que le premier attribut de v3; idem pour les autres attributs de Voiture
I.4 passage de paramètres
- également par recopie de référence
- danger: passer un objet à une méthode permet à celle-ci de le modifier
I.5 références spéciales
- null (valeur par défaut de tout type objet, non typée) ==> pas de .
- this (objet courant, typée) conseillé même quand facultatif
[Rappel: objet courant = objet sur lequel a été appelé la méthode]
I.6 classes spéciales
- Integer vI; : vI= 3; remplace vI= new Integer(3); (quelques méthodes)
- Boolean vB; : vB= true; remplace vB= new Boolean(true); (quelques méthodes)
- String vS; : vS= "mot"; remplace vS= new String("mot");
(beaucoup de méthodes, opérateur +)
I.7 accès à un attribut
objet.aNomAttribut ou this.aNomAttribut
I.8 appel d'une méthode
- objet.nomMéthode() ou this.nomMéthode()
- appels successifs : this.getRoueAv().nomMéthode()
II. Expressions
II.1 Expression référence
1.1) valeur littérale : null et this
1.2) variable : vC1 ou pV1 ou aV1
1.3) new NomClasse()
1.4) appel de fonction : getRoueAv()
II.2 Expression arithmétique (entière)
2.1) valeur littérale : -123 ou +45 ou 67
2.2) variable : (locale, attribut, paramètre)
2.3) constante : (locale, attribut, paramètre) déclarée comme suit :
- final Integer CONSTANTE_LOCALE = 10;
- private final Integer ATTRIBUT_CONSTANT = 10;
- final Integer pNomParametre
==> compilateur vérifie la non-modification
2.4) appel de fonction : getDiameter()
2.5) OP1(expression_arithmétique) : -
2.6) expression_arithmétique OP2 expression_arithmétique : + - * / %
[division euclidienne: / --> quotient, % --> reste]
II.3 Expression booléenne
3.1) valeur littérale : true ou false
3.2) variable : (locale, attribut, paramètre)
3.3) constante : (locale, attribut, paramètre) déclarée comme suit :
- locale : inutile
- private final Boolean ATTRIBUT_CONSTANT = true; : rarement utile
- final Boolean pNomParametre
==> compilateur vérifie la non-modification
3.4) appel de fonction : isVisible()
3.5) résultat d'une comparaison avec : < > <= >= == !=
3.6) OP1(expression_booléenne) : ! --> NON
3.7) expression_booléenne OP2 expression_booléenne : && --> ET ou || --> OU
3.8) évaluation paresseuse : s'arrête dè qu'on peut déterminer le résultat
(faux avec ET, vrai avec OU) ==> non commutatif (mais même résultat)
III. Déclaration, initialisation, instruction
III.1 déclaration
1.1) attribut : private Type aNomAttribut;
(déclaration en tête de classe, initialisation par le constructeur)
1.2) paramètre : (sécurité Type pNomParametre1, sécurité Type pNomParametre2
(déclaration dans la signature d'une méthode, initialisation au moment de l'appel)
sécurité : final (pour empêcher toute modification locale) ou rien
1.3) variable locale : Type vNomVariableLocale;
(déclaration juste avant d'en avoir besoin ou en tête d'une méthode,
initialisation en même temps ou plus tard par une affectation)
III.2 déclaration/initialisation
uniquement pour variable locale : Type vNomVariableLocale = expression_du_meme_type;
III.3 instructions simples
3.1) { instructions } équivalent à une seule instruction
3.2) affectation : variable = expression_de_meme_type;
(calcul à droite, puis stockage à gauche du signe =)
3.3) fin de méthode :
- constructeur : inutile
- procédure : return; (facultatif, pour une fin prématurée)
- fonction : return expression_du_meme_type; (obligatoire)
3.4) appel de procédure : objet.nomProcedure();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
non traité, voir cours3 :
IV. Méthodes particulières
V. Tests
VI. Récursivité
VII. Entrée/sortie terminal/console
Dernière mise à jour :