View
3
Download
0
Category
Preview:
Citation preview
POO et Java, notions de base
Sébastien Jean
IUT de ValenceDépartement Informatique
v13.5, 20 janvier 2020
Bases de la programmation objet Classes et objets
Qu’est ce qu’un objet ?
Un objet est l’incarnation informatique d’un concept
Un utilisateur Un point dans un plan
Une partie d’échecs
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 1 / 18
Bases de la programmation objet Classes et objets
Individualité des objets
Un objet est l’incarnation informatique individuelle d’un concept
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 2 / 18
Bases de la programmation objet Classes et objets
Référence
Un objet n’existe qu’à l’exécution d’une application
En Java, chaque objet est identifié de manière unique par saréférence
Référence → identifiant sur 32 ou 64 bits 6= adresse
Références gérées par la JVM et ne pouvant pas être « fabriquées »
@Ref1 @Ref2 @Ref3
@Ref4 @Ref5 @Ref6
@Ref7 @Ref8 @Ref9
@Ref10 @Ref11 @Ref12
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 3 / 18
Bases de la programmation objet Classes et objets
Typage d’un objet
Un objet possède un type
En java, le type d’un objet ne peut pas changer
Utilisateur Point
ChessGame
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 4 / 18
Bases de la programmation objet Classes et objets
Structure d’un objet
Un objet est une brique logicielle renfermant un ensembled’attributs (données) et de méthodes (traitements)
on parle d’encapsulation
Attributs+
Méthodes
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 5 / 18
Bases de la programmation objet Classes et objets
A quoi sert un attribut ?
Chaque attribut exprime une propriété de l’objet
attribut ' « variable locale à un objet »
Chaque attribut possède un nom
unique au sein de l’objet
Utilisateur
Attributs
Nom, Prénom, Age
Attributs
Abscisse, Ordonnée
Point
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 6 / 18
Bases de la programmation objet Classes et objets
Typage des attributs
Chaque attribut possède un type
En Java, le type d’un attribut ne peut pas changer
Utilisateur
Attributs
nom : chaîne de caractères,prenom : chaîne de caractères,
age : entier
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 7 / 18
Bases de la programmation objet Classes et objets
Etat d’un objet
L’état d’un objet est décrit par l’ensemble des valeurs de sesattributs
L’état d’un objet lui est propre et évolue indépendamment del’état des autres objets du même type
Utilisateur
Attributs
nom = "Abitbol", prenom = "Georges",
age = 42
@ref1
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 8 / 18
Bases de la programmation objet Classes et objets
Individualité des objets (suite)
Chaque objet est distinct des autres
En Java, une référence est unique au sein d’une application
Utilisateur
Attributs
nom = "Abitbol", prenom = "Georges",
age = 42
@ref1
Utilisateur
Attributs
nom = "Average", prenom = "Joe",
age = 33
@ref2
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 9 / 18
Bases de la programmation objet Classes et objets
Equivalence d’objets
Deux objets distincts peuvent être équivalents
Leurs références sont différentes
Leurs états sont identiques
Utilisateur
Attributs
nom = "Abitbol", prenom = "Georges",
age = 42
@ref1
Utilisateur
Attributs
nom = "Abitbol", prenom = "Georges",
age = 42
@ref2
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 10 / 18
Bases de la programmation objet Classes et objets
A quoi sert une méthode ?
Chaque méthode exprime un comportement de l’objet
Méthodes ' « fonctions » ou « procédures » s’appliquant sur un objet
Utilisateur Attributs
Méthodes
obtenirNom, renommer,feterAnniversaire,
nom : chaîne de caractères,prénom : chaîne de caractères, age : entier
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 11 / 18
Bases de la programmation objet Classes et objets
Signature d’une méthode
Chaque méthode possède un nom
Une méthode peut éventuellement posséder un ou plusieursparamètre(s) d’appel identifié(s) par un nom et un type
Une méthode peut éventuellement retourner une valeurCette valeur de retour, unique si elle existe, possède un type
Utilisateur Attributs
Méthodes
obtenirNom () : chaîne de caractères,renommer (chaîne de caractères, chaîne de caractères),feterAnniversaire (),
nom : chaîne de caractères,prénom : chaîne de caractères, age : entier
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 12 / 18
Bases de la programmation objet Classes et objets
Qu’est ce qu’une classe ?
Une classe décrit la structure et le comportement d’une familled’objets
Déclaration des attributs et déclarations/implémentations desméthodes
Utilisateur Attributs
Méthodes
obtenirNom () : chaîne de caractères,renommer (chaîne de caractères, chaîne de caractères),feterAnniversaire (),
obtenirNom() : Stringrenommer(String, String)feterAnniversaire()
nom : Stringprenom : Stringage : int
Utilisateur
nom : chaîne de caractères,prénom : chaîne de caractères, age : entier
Une classe possède un nom et définit un type
Le type de chaque objet est identifié par le nom de sa classe
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 13 / 18
Bases de la programmation objet Classes et objets
Instanciation
Une classe permet de créer un nombre quelconque d’objets
La création d’un objet s’appelle instanciation
Les instances (objets) d’une même classe sont indépendantes et sontmanipulées indépendamment
Méthodes appelées sur une instance particulière
Instanciation
Compilation Exécution
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 14 / 18
Bases de la programmation objet Types
Types Java
Le typage s’applique aux attributs, aux variables locales desméthodes, aux paramètres et valeurs de retour des méthodes
Trois catégories de types en Java
Types primitifs
Pré-existants et non objets, représentation immédiate en mémoire
Types objets
Type tableau
Ni type primitif, ni vraiment type objet non plus !
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 15 / 18
Bases de la programmation objet Types
Types primitifs
Types entiers (signés uniquement)Type Taille (en bits) Valeur minimale Valeur maximalebyte 8 -128 127short 16 -32768 32767int 32 -2147483648 2147483647long 64 -9223372036854775808 9223372036854775807
Remarque : expression possible en binaire (0b00001111 pour 15), enoctal (017 pour 15) ou en hexadécimal (0x0F pour 15)
Types flottants (IEEE 754)Type Taille (en bits) Chiffres significatifs Valeur minimale Valeur maximalefloat 32 7 1.4239846E-45 3.40282347E38double 64 15 4.9406564584124654E-234 1.797693134862316E308
Remarque : notation 3.25 ou -3.23E-12
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 16 / 18
Bases de la programmation objet Types
Types primitifs (fin)
Type vide
void, uniquement pour définir une méthode sans valeur de retour
Type booléen
boolean, possédant deux valeurs : true et false
Type caractère
char, valeur entre apostrophes (ex : ’a’), représentant un caractèreUnicode (16 bits)
Caractères définis par des valeurs entières
Arithmétique de caractères (’a’ + 1 = ’b’)
Remarque : \uxxxx permet de représenter le caractère Unicode de codexxxx si la plateforme n’en permet pas l’édition
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 17 / 18
Bases de la programmation objet Types
Fin !
Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 18 / 18
Recommended