33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de :...
-
Upload
liane-beaufils -
Category
Documents
-
view
107 -
download
0
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.