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

Post on 04-Apr-2015

107 views 0 download

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

3333

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

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

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.

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.

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

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

3-3-77

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

abstractfinalnativeprivateprotectedpublicstaticsynchronizedtransientvolatile

breakcasecatchcontinuedefaultdoelsefinallyforifreturnswitchthrowtrywhile

booleanbytechardoublefloatintlongshortvoid

falsenulltrue

classextendsimplementsinterfacethrows

instanceofnewsuperthis

importpackage

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

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

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]

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

}

}

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

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

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

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

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;

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

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

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

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.

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

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

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

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

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

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;

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.