33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de :...

27
3 3 Types de données et opérateurs

Transcript of 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de :...

Page 1: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3333

Types de données et opérateursTypes de données et opérateurs

Page 2: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-22

ObjectifsObjectifs

A la fin de ce cours, vous serez capables de :

• Décrire les types de données primitives

• Déclarer et initialiser les variables primitives

• Utiliser les opérateurs pour manipuler la valeur d'une variable primitive

A la fin de ce cours, vous serez capables de :

• Décrire les types de données primitives

• Déclarer et initialiser les variables primitives

• Utiliser les opérateurs pour manipuler la valeur d'une variable primitive

Page 3: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-33

Vue d'ensembleVue d'ensemble

• Java fournit des primitives pour les types de données élémentaires.

• Les primitives servent de base au stockage et à l'utilisation des informations.

• La déclaration et l'initialisation des primitives sont à la base de la création de types définis par l'utilisateur.

• Java fournit des primitives pour les types de données élémentaires.

• Les primitives servent de base au stockage et à l'utilisation des informations.

• La déclaration et l'initialisation des primitives sont à la base de la création de types définis par l'utilisateur.

Page 4: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-44

Vue d'ensembleVue d'ensemble

• Les opérateurs manipulent les données et objets.

• Génération d'une valeur à partir d'un ou de plusieurs arguments.

• Java fournit 44 opérateurs différents.

• Certains opérateurs modifient la valeur de l'opérande.

• Les opérateurs manipulent les données et objets.

• Génération d'une valeur à partir d'un ou de plusieurs arguments.

• Java fournit 44 opérateurs différents.

• Certains opérateurs modifient la valeur de l'opérande.

Page 5: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-55

VariablesVariables

• Une variable est une unité de stockage de base.

• Les variables doivent être déclarées explicitement.

• Chaque variable possède un type, un identifiant et un champ d'application.

• Les variables peuvent être initialisées.

• Une variable est une unité de stockage de base.

• Les variables doivent être déclarées explicitement.

• Chaque variable possède un type, un identifiant et un champ d'application.

• Les variables peuvent être initialisées.

int myAge;

boolean isAMovie;

float maxItemCost = 17.98;

TypeType

IdentifiantIdentifiant

Page 6: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-66

Noms des variablesNoms des variables

• Les noms de variables doivent commencer par une lettre de l'alphabet, un caractère de soulignement (_) ou le symbole $

• Les autres caractères peuvent être des chiffres.

• Utilisez des noms évocateurs, tels que :customerFirstName, ageNextBirthday.

• Les noms de variables doivent commencer par une lettre de l'alphabet, un caractère de soulignement (_) ou le symbole $

• Les autres caractères peuvent être des chiffres.

• Utilisez des noms évocateurs, tels que :customerFirstName, ageNextBirthday.

a item_Cost

itemCost _itemCost

item$Cost itemCost2

item#Cost item-Cost

item*Cost abstract

2itemCost

Page 7: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-77

Mots-clés réservésMots-clés réservés

abstractfinalnativeprivateprotectedpublicstaticsynchronizedtransientvolatile

breakcasecatchcontinuedefaultdoelsefinallyforifreturnswitchthrowtrywhile

booleanbytechardoublefloatintlongshortvoid

falsenulltrue

classextendsimplementsinterfacethrows

instanceofnewsuperthis

importpackage

Page 8: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-88

Types de variablesTypes de variables

• Huit types de données primitives :

– Six types numériques

– Un type char, pour les caractères

– Un type boolean, pour les valeurs vraies

• Types définis par l'utilisateur

– Classes

– Interfaces

– Tableaux

• Huit types de données primitives :

– Six types numériques

– Un type char, pour les caractères

– Un type boolean, pour les valeurs vraies

• Types définis par l'utilisateur

– Classes

– Interfaces

– Tableaux

Page 9: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-99

Types de données primitivesTypes de données primitives

Entier Virguleflottante

Caractère VraiFaux

byte float char booleanshort doubleintlong

1,2,3,42070xff

3.0.33374.022E23

'a''\141''\u0061''\n'

truefalse

Page 10: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1010

Déclaration de variablesDéclaration de variables

• Forme élémentaire d'une déclaration de variable :

• Les variables peuvent être initialisées lors de leur déclaration.

• Forme élémentaire d'une déclaration de variable :

• Les variables peuvent être initialisées lors de leur déclaration.

public static void main(String[] args) {

int itemsRented;

float itemCost;

int i, j, k;

double interestRate;

}

type type identifieridentifier [ = value] [ = value]

Page 11: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1111

Déclaration de variablesDéclaration de variables

• Les variables locales sont contenues uniquement dans une méthode ou un bloc de code.

• Les variables locales doivent être déclarées avant utilisation.

• Les variables locales sont contenues uniquement dans une méthode ou un bloc de code.

• Les variables locales doivent être déclarées avant utilisation.

class Rental {

private int instVar; // instance variable

public void addItem() {

float itemCost = 3.50; // local variable

int numOfDays = 3; // local variable

}

}

Page 12: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1212

Littéraux numériques Littéraux numériques

0 1 42 -23795 (decimal)

02 077 0123 (octal)

0x0 0x2a 0X1FF (hex)

365L 077L 0x1000L (long)

1.0 4.2 .47

1.22e19 4.61E-9

6.2f 6.21F

Littéraux entiersLittéraux entiers

Littéraux en Littéraux en virgule flottantevirgule flottante

Page 13: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1313

Littéraux non numériquesLittéraux non numériques

true false

'a' '\n' '\t' '\077'

'\u006F'

"Hello, world\n"

Littéraux booléensLittéraux booléens

Littéraux de typeLittéraux de type chaîne chaîne

Littéraux de typeLittéraux de typecaractèrecaractère

Page 14: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1414

Exercice pratique : déclaration de variables

Exercice pratique : déclaration de variables

Trouvez les erreurs et corrigez-les.Trouvez les erreurs et corrigez-les.

byte sizeof = 200;

short mom = 43;

short hello mom;

int big = sizeof * sizeof * sizeof;

long bigger = big + big + big // ouch

double old = 78.0;

double new = 0.1;

boolean consequence = true;

boolean max = big > bigger;

char maine = "New England state";

char ming = 'd';

1

2

3

4

5

6

7

8

9

10

11

Page 15: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1515

OpérateursOpérateurs

Cinq types d'opérateurs :

• Affectation

• Arithmétique

• Entier au niveau bit

• Relationnel

• Booléen

Cinq types d'opérateurs :

• Affectation

• Arithmétique

• Entier au niveau bit

• Relationnel

• Booléen

Page 16: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1616

Opérateur d'affectationOpérateur d'affectation

• L'expression sur la droite est affectée à la variable située à gauche :

• L'expression à droite est toujours calculée avant l'affectation.

• Les affectations peuvent être chaînées ensemble :

• L'expression sur la droite est affectée à la variable située à gauche :

• L'expression à droite est toujours calculée avant l'affectation.

• Les affectations peuvent être chaînées ensemble :

int var1 = 0, var2 = 0;

var1 = 50; // var1 now equals 50

var2 = var1 + 10; // var2 now equals 60

var1 = var2 = var3 = 50;

Page 17: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1717

Opérateurs arithmétiquesOpérateurs arithmétiques

• Exécution d'opérations arithmétiques élémentaires

• Agissent sur les variables et littéraux numériques

• Exécution d'opérations arithmétiques élémentaires

• Agissent sur les variables et littéraux numériques

int a, b, c, d;

a = 2 + 2; // addition

b = a * 3; // multiplication

c = b - 2; // subtraction

d = b / 2; // division

e = b % 2; // retourne le reste de la division

Page 18: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1818

Opérateurs arithmétiquesOpérateurs arithmétiques

La plupart des opérations donnent un résultat int ou long :

• Les valeurs byte, char et short sont converties en int avant l'opération.

• Si l'un des arguments est long, l'autre est converti en long et le résultat est long.

La plupart des opérations donnent un résultat int ou long :

• Les valeurs byte, char et short sont converties en int avant l'opération.

• Si l'un des arguments est long, l'autre est converti en long et le résultat est long.

byte b1 = 1, b2 = 2, b3;

b3 = b1 + b2; // error: result is an int

// b3 is byte

Page 19: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-1919

• Java convertit automatiquement une valeur d'un type numérique en un type plus long.

• Java ne procède pas à un “downcast” (conversion) automatique.

• Java convertit automatiquement une valeur d'un type numérique en un type plus long.

• Java ne procède pas à un “downcast” (conversion) automatique.

Conversions et casts (modelages)Conversions et casts (modelages)

bytebyte longlongintintshortshort

bytebyteshortshort

intintlonglong

Page 20: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2020

Incrémentation et décrémentationIncrémentation et décrémentation

• L'opérateur ++ augmente une valeur de 1 unité

• L'opérateur ++ peut être utilisé de deux manières :

• L'opérateur -- diminue une valeur de 1 unité.

• L'opérateur ++ augmente une valeur de 1 unité

• L'opérateur ++ peut être utilisé de deux manières :

• L'opérateur -- diminue une valeur de 1 unité.

int var1 = 3;

var1++; // var1 now equals 4

int var1 = 3, var2 = 0;

var2 = ++var1; // Prefix: Increment var1 first,

// then assign to var2.

var2 = var1++; // Postfix: Assign to var2 first,

// then increment var1.

Page 21: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2121

Opérateurs relationnels et d'égalité :Opérateurs relationnels et d'égalité :

supérieur àsupérieur ou égal àinférieur àinférieur ou égal àégal àdifférent de

>>=<<===!=

ComparaisonsComparaisons

int var1 = 7, var2 = 13;

boolean res = true;

res = (var1 == var2); // res now equals false

res = (var2 > var1); // res now equals true

Page 22: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2222

Opérateurs logiquesOpérateurs logiques

Les résultats d'expressions booléennes peuvent être combinés au moyen d'opérateurs logiques :Les résultats d'expressions booléennes peuvent être combinés au moyen d'opérateurs logiques :

et (avec / sans évaluation)ou (avec / sans évaluation)ou exclusifnégation

&& &|| |^!

int var0 = 0, var1 = 1, var2 = 2;

boolean res = true;

res = (var2 > var1) & (var0 == 3); // now false

res = !res; // now true

Page 23: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2323

Affectation combinéeAffectation combinée

L'opérateur d'affectation peut être combinéavec tout opérateur binaire conventionnel :L'opérateur d'affectation peut être combinéavec tout opérateur binaire conventionnel :

double total=0, num = 1;

double percentage = .50;

total = total + num; // total is now 1

total += num; // total is now 2

total -= num; // total is now 1

total *= percentage; // total is now .5

Page 24: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2424

Priorité des opérateursPriorité des opérateurs

Opérateurs

++ -- + - ~!(type) * / % + - + << >> >>> < > <= >= instanceof == != & ^ | && || ?: = op=

Commentaires

Opérateurs unaires

Multiplication, division, resteSomme, soustraction, somme de chaînesDécalage (>>> est un décalageavec mise à zéro)Relationnel, comparaison

EgalitéBit / logique ETBit / logique OU exclusifBit / logique OU inclusifET logiqueOU logiqueOpérateur conditionnelOpérateurs d'affectation

Ordre

1

2345

6 7 8910111213

Page 25: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2525

Priorité (Suite)Priorité (Suite)

• La priorité des opérateurs détermine l'ordre dans lequel les opérateurs sont exécutés :

• Les opérateurs avec la même priorité sont exécutés de gauche à droite (voir remarque ci-dessous) :

• Utilisez des parenthèses pour outrepasser l'ordre par défaut.

• La priorité des opérateurs détermine l'ordre dans lequel les opérateurs sont exécutés :

• Les opérateurs avec la même priorité sont exécutés de gauche à droite (voir remarque ci-dessous) :

• Utilisez des parenthèses pour outrepasser l'ordre par défaut.

int var1 = 0;

var1 = 2 + 3 * 4; // var1 now equals 14

int var1 = 0;

var1 = 12 - 6 + 3; // var1 now equals 9

Page 26: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2626

Concaténation de chaînesConcaténation de chaînes

L'opérateur + crée des chaînes et les met bout à bout :L'opérateur + crée des chaînes et les met bout à bout :

String name = "Jane ";

String lastName = "Hathaway";

String fullName;

name = name + lastName; // name is now

//"Jane Hathaway"

// OR

name += lastName; // same result

fullName = name;

Page 27: 33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.

3-3-2727

RésuméRésumé

Voici les principaux enseignements de cette leçon :

• Java dispose de huit types de données primitives.

• Une variable doit être déclarée avant d'être utilisée.

• Java dispose d'un jeu complet d'opérateurs.

• Une conversion explicite peut s'avérer nécessaire si vous utilisez des types de données plus courts que int.

• Les opérateurs + et += peuvent être utilisés pour créer et raccorder des chaînes.

Voici les principaux enseignements de cette leçon :

• Java dispose de huit types de données primitives.

• Une variable doit être déclarée avant d'être utilisée.

• Java dispose d'un jeu complet d'opérateurs.

• Une conversion explicite peut s'avérer nécessaire si vous utilisez des types de données plus courts que int.

• Les opérateurs + et += peuvent être utilisés pour créer et raccorder des chaînes.