19
POO et Java, notions de base Sébastien Jean IUT de Valence Département Informatique v13.5, 20 janvier 2020

Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

POO et Java, notions de base

Sébastien Jean

IUT de ValenceDépartement Informatique

v13.5, 20 janvier 2020

Page 2: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 3: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 4: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 5: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 6: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 7: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 8: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 9: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 10: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 11: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 12: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 13: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 14: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 15: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 16: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 17: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 18: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

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

Page 19: Département Informatique IUT de Valencepedago.sebastienjean.fr/INFO1/DUT-INFO_PPN2013_M... · Utilisateur Attributs M thodes obtenirNom : cha ne de caract res, renommer (cha ne de

Bases de la programmation objet Types

Fin !

Sébastien Jean (IUT Valence) M2103, bases v13.5, 20 janvier 2020 18 / 18