• Aucun résultat trouvé

Compl´ements objet Licence 1 MASS, parcours SEMS Introduction `a Java et `a l’algorithmique

N/A
N/A
Protected

Academic year: 2022

Partager "Compl´ements objet Licence 1 MASS, parcours SEMS Introduction `a Java et `a l’algorithmique"

Copied!
23
0
0

Texte intégral

(1)

Licence 1 MASS, parcours SEMS Introduction ` a Java et ` a l’algorithmique

S´ebastien Verel

verel@i3s.unice.fr www.i3s.unice.fr/∼verel

´Equipe ScoBi - Universit´e Nice Sophia Antipolis

12 avril 2013

(2)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Synth` ese

El` eves de synth` ese du jour ?

(3)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Objectifs de la s´ eance 8

Savoir utiliser ”this” en Processing

Savoir utiliser un h´ eritage simple entre classes en Processing Savoir utiliser la classe ArrayList

Comment h´ eriter sans soucis ?

(4)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Objectifs de la s´ eance 8

Savoir utiliser ”this” en Processing

Savoir utiliser un h´ eritage simple entre classes en Processing Savoir utiliser la classe ArrayList

Question principale du jour :

Comment h´ eriter sans soucis ?

(5)

Plan

1

Utilisation de ”this”

2

H´ eritage avec Processing

3

Donn´ ees index´ ees de taille variable

(6)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Utilisation de This

Voir la premi` ere partie du cours J.P. Roy :

Compl´ ements sur les objets

(7)

La classe Balle (CM 07)

Champs :

float x, y float vx, vy float r

float friction

Constructeur :

Balle(int rInit, float fInit, float xInit, float yInit, float vxInit, float vyInit)

M´ ethodes :

void dessineToi() void bouge()

public String toString()

(8)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Programme principal

Balle b1, b2;

void setup() { size(400, 400);

fill(0, 0, 255);

smooth();

b1 = new Balle(10, 0.95, 0, 0, 2, 0);

b2 = new Balle(20, 0.98, 50, 0, 0.0, -0.5);

println("Balle initiale : " + b1);

println("Balle initiale : " + b2);

}

(9)

Programme principal

void draw() {

background(255, 255, 0);

b1.dessineToi();

b2.dessineToi();

b1.bouge();

b2.bouge();

}

(10)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Balle cubique

Et si on cr´ eait une balle cubique ? ou balle ` a image ?

Id´ ee

R´ ecup´ erer l’expertise de la classe

Balle

Changer seulement ce qui est sp´ ecifique ` a une balle cubique

(11)

Balle cubique

Et si on cr´ eait une balle cubique ? ou balle ` a image ?

Id´ ee

R´ ecup´ erer l’expertise de la classe

Balle

Changer seulement ce qui est sp´ ecifique ` a une balle cubique

(12)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

La classe Cube

class Cube extends Balle { ...

...

...

}

Le mot cl´ e

extends

permet d’utiliser toutes les champs et m´ ethodes de la classe

Balle

depuis la classe

Cube

:

la classe Cube

h´erite

de la classe

Balle Balle

est la classe m` ere de la classe

Cube Cube

est la classe fille de la classe

Balle

(13)

La classe Cube : constructeur

class Cube extends Balle {

Cube(int rInit, float fInit, float xInit, float yInit, float vxInit, float vyInit) { super(rInit, fInit, xInit, yInit, vxInit, vyInit);

} }

Le mot cl´ e

super

fait r´ ef´ erence ` a la classe m` ere (sup´ erieure)

Donc

super(...)

fait appel au constructeur de la classe

m` ere (sup´ erieure)

(14)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

La classe Cube : 2 constructeurs

class Cube extends Balle {

Cube(int rInit, float fInit, float xInit, float yInit, float vxInit, float vyInit) { super(rInit, fInit, xInit, yInit, vxInit, vyInit);

}

Cube(int rInit, float fInit) { this(rInit, fInit,

random(width), random(height / 4, height), random(-2, 2), random(-2, 0));

} }

(15)

La classe Cube : m´ ethode sp´ ecifique

class Cube extends Balle {

Cube(int rInit, float fInit, float xInit, float yInit, float vxInit, float vyInit) { super(rInit, fInit, xInit, yInit, vxInit, vyInit);

}

Cube(int rInit, float fInit) { this(rInit, fInit,

random(width), random(height / 4, height), random(-2, 2), random(-2, 0));

}

void dessineToi() { rect(x, y, r, r);

}

(16)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Barre

Et si on cr´ eait une barre qui rebondit (bizarrement) ?

(17)

La classe Barre

class Barre extends Balle { ...

...

...

}

(18)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

La classe Barre : champ sp´ ecifique

class Barre extends Balle { float orientation;

...

...

}

La barre a une orientation (un angle).

(19)

La classe Barre : constructeurs

class Barre extends Balle { float orientation;

Barre(int rInit, float fInit, float orientationInit,

float xInit, float yInit, float vxInit, float vyInit) { super(rInit, fInit, xInit, yInit, vxInit, vyInit);

orientation = orientationInit;

}

Barre(int rInit, float fInit) {

this(rInit, fInit, random(0, TWO_PI),

random(width), random(height / 2, height), random(-2, 2), random(-2, 0));

} }

(20)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

La classe Barre : 1 m´ ethode

class Barre extends Balle { (...)

void dessineToi() { line(x, y,

x + r * cos(orientation), y + r * sin(orientation));

} }

(21)

La classe Barre : une autre m´ ethode sp´ ecifique

class Barre extends Balle { (...)

void dessineToi() { line(x, y,

x + r * cos(orientation), y + r * sin(orientation));

}

void bouge() { super.bouge();

orientation = orientation + PI / 50;

} }

(22)

Utilisation de ”this”

eritage avec Processing Donn´ees index´ees de taille variable

Donn´ ees index´ ees de taille variable

Voir le cours J.P. Roy :

Une collection de taille variable

(23)

Objectifs de la s´ eance 8

Savoir utiliser ”this” en Processing

Savoir utiliser un h´ eritage simple entre classes en Processing Savoir utiliser la classe ArrayList

Question principale du jour :

Comment h´ eriter sans soucis ?

Références

Documents relatifs

La troisième classe comprenant toute la section préparatoire, travaill elle aussi sui- vant les mêmes normes, les enfants réalisant un journal imprimé relatant

De retour, nous ob~ervons scientifiquement un poisson (nageoires, anus, branchies).. Nous le

- La touche Verr Maj permet de bloquer le clavier en position majuscules (comme si on maintenait appuyée une des deux touches Maj).. Savoir utiliser

Exemples d’algorithmes de l’histoire et du quotidien Une tr` es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs D´

lorsque bool´ een1 est vrai, la partie a s’ex´ ecute (quelque soit la valeur de bool´ een2 ) lorsque bool´ een1 est faux et que bool´ een2 est vrai, la partie b s’ex´ ecute.

si b est VRAI, alors ”morceau d’algorithme” est ex´ ecut´ e si b est FAUX, alors ”morceau d’algorithme” n’est pas ex´ ecut´ e, l’algorithme continue apr` es ”fin

valeurs initiales des variables en param` etre : celles donn´ ees effectivement en ex´ ecutant l’algorithme (passage par valeur) impossible de modifier la valeur d’une variable

les [] : indique que la variable est de type tableau Toutes les valeurs des cases du tableau sont donn´ ees en