Médiaforma

All posts tagged long

Les constantes, variables et méthodes de cette classe sont immédiatement accessibles sans qu’il soit nécessaire d’utiliser une instruction import. La déclaration suivante est implicite :

import java.lang.*;

Les variables

MAX_VALUE représente la valeur maximale qui peut être stockée dans une variable Long : 0x7fffffffffffffff.

MIN_VALUE représente la valeur minimale qui peut être stockée dans une variable Long : 0x8000000000000000.

Le constructeur

Le constructeur Long permet de définir un objet Long à partir d’une variable long ou d’un objet String :

public Long(long value);
public Long(String s) throws NumberFormatException

Exemple :

Long Lx1 = new Long(123456789);
Long Lx1 = new Long("123456789");

Les méthodes

Les méthodes de la classe Long sont pratiquement identiques à celles de la classe Integer. Pour ne pas surcharger cet ouvrage, nous nous contenterons de les citer. Pour de plus amples renseignements, consultez la documentation API (http://docs.oracle.com/javase/8/docs/api/).

Méthode Description
doubleValue() Convertit un objet Long en une valeur double
equals(Object) Teste l’égalité de deux objets Long
floatValue() Convertit un objet Long en une valeur float
getLong(String) Renvoie la valeur d’une propriété Long dont le nom est précisé dans l’argument
getLong(String, long) Renvoie la valeur d’une propriété Long dont le nom est précisé dans l’argument. Si la propriété n’existe pas, le deuxième argument est renvoyé
getLong(String, Long) Renvoie la valeur d’une propriété Long dont le nom est précisé dans l’argument. Si la propriété n’existe pas, le deuxième argument est renvoyé
hashCode() Retourne le hashcode de l’objet sur lequel elle est appliquée
intValue() Convertit un objet Long en une valeur int
longValue() Convertit un objet Long en une valeur long
parseLong(String, int) Convertit un objet String en une valeur Long dans la base de numération spécifiée
parseLong(String) Convertit un objet Long en une valeur Long en base 10
toString(long, int) Convertit une valeur Long en un objet String selon la base de numération spécifiée
toString(long) Convertit une valeur long en un objet String en base 10
toString() Convertit un objet Long en un objet String
valueOf(String, int) Convertit un objet String en un objet Long en utilisant la base de numération spécifiée
valueOf(String) Convertit un objet String en un objet Long

Types de données prédéfinis

Les types de données prédéfinis en Java ne sont pas très nombreux. Ils permettent de manipuler des nombres entiers (byte, short, int, long), des nombres réels (float, double), des booléens (boolean) et des caractères (char). Par extension, vous pouvez également utiliser la classe String pour manipuler facilement des chaînes de caractères.

Les divers types de données utilisables en Java vont être passés en revue dans les sections suivantes.

Nombres entiers

Selon la taille des nombres à manipuler, vous utiliserez le format byte, short, int ou long :

  • Les entiers byte sont codés sur 8 bits. Ils permettent de manipuler des nombres compris entre -2^7 et (2^7)- 1, c’est-à-dire entre -128 et 127.
  • Les entiers short sont codés sur 16 bits. Ils permettent de manipuler des nombres compris entre -2^15 et (2^15)-1, c’est-à-dire entre -32768 et 32767.
  • Les entiers int sont codés sur 32 bits. Ils permettent de manipuler des nombres compris entre -2^31 et (2^31)-1, c’est-à-dire entre -2147483648 et 2147483647.
  • Enfin, les entiers long sont codés sur 64 bits. Ils permettent de manipuler des nombres compris entre -2^63 et 2^63, c’est-à-dire entre -9223372036854775808 et 9223372036854775807.

Exemples :

Les nombres entiers peuvent être exprimés en décimal (base 10), en hexadécimal (base 16) ou en octal (base 8) :

byte NombreDécimal = 127;       // Un nombre entier exprimé en décimal
int NombreHexadécimal = 0x5ec;  // Un nombre entier exprimé en hexadécimal
long NombreOctal = 0346;        // Un nombre entier exprimé en octal

Nombres réels

Les nombres réels sont composés d’une partie entière suivie d’un point, d’une partie décimale, de la lettre e (ou E) et d’un exposant, éventuellement précédé d’un signe + ou -.

Voici quelques exemples de nombres réels :

325.707
3.25707E2
.325707E3
-45.567E-5

Le langage Java manipule deux types de réels :

  • Les réels float sont codés en simple précision sur 32 bits (1.40239846e-45 à 3.40282347e38).
  • Les réels double sont codés en double précision sur 64 bits (4.94065645841246544e-324 à 1.79769313486231570e308).

Vous pouvez spécifier le type d’une variable réelle pendant sa création en utilisant les mots clés double et float :

double d = 34.56567;
float f = 123.56;

Attention :

La seconde instruction est incorrecte : Lorsque Java rencontre un point décimal dans une affectation, il suppose qu’il s’agit d’un réel double. En affectant un nombre contenant un point décimal à une variable float, vous obtiendrez un message d’erreur vous indiquant une incompatibilité de type. Pour résoudre ce problème, vous utiliserez l’une des deux syntaxes suivantes :

float f = (float)123.56;
float f = 123.56f;
La lettre "f" à la fin de la seconde instruction indique que la donnée est de type float et non double. De la même façon, vous pouvez utiliser le suffixe "d" pour affecter une valeur double à une variable :
double d = 145.56565d;

Remarque

Les suffixes f et d peuvent être indifféremment utilisés en lettres minuscules ou majuscules.

Booléens

Ils peuvent prendre la valeur true ou la valeur false. Si vous le souhaitez, il est également possible d’utiliser (comme dans de nombreux autres langages) un nombre non nul pour représenter la valeur true et le nombre 0 pour représenter la valeur false.

Dans l’exemple suivant, les instructions définies entre les deux accolades seront exécutées. En effet, la variable Valeur étant non nulle, sa valeur est interprétée comme true.

Valeur = 4;
if Valeur then {
  ...
}

Type char

Une variable de type char peut contenir un (et un seul !) caractère. Java utilise le jeu de caractères 16 bits Unicode qui contient quelque 65 000 caractères! Il est donc possible de manipuler des caractères spécifiques à la langue française (à, é, è, ç, etc.) dans les variables char… et par extension dans les chaînes String.

A titre d’exemple, les deux affectations ci-après sont correctes :

char c1 = 'é';
char c2 = '1';

Par contre, cette troisième affectation produira une erreur lorsqu’elle sera exécutée :

char c3 = 'er';


Comme tous les langages, Java est composé d’un certain nombre de mots-clés. Nous allons les passer en revue dans cette section.

Commentaires

Pour faciliter la compréhension et la maintenance du code, il est souvent utile d’ajouter des commentaires dans le source d’une application ou d’une applet.

Le langage Java supporte trois types de commentaires :

Commentaires – Premier type

Les caractères “//” définissent un commentaire sur une (et une seule) ligne qui s’étend jusqu’au retour chariot de fin de ligne.

Les deux exemples ci-après sont corrects :

// Ce commentaire occupe une ligne
for (i=1; i<10; i++) // Le traitement est répété 10 fois

Par contre, l’exemple ci-après est incorrect. Les caractères “//” ne peuvent pas être placés à l’intérieur d’une instruction :

for (i=1; // Le traitement est répété 10 fois i<10; i++)

Commentaires – Deuxième type

Les signes “/*” et “*/” peuvent être utilisés pour placer des commentaires sur plusieurs lignes ; par exemple :

/* Ceci est un commentaire
   qui occupe deux lignes */

Contrairement au premier type de commentaire (//), il est ici possible de placer un commentaire à l’intérieur d’une instruction :

for (i=1; /* Le traitement est répété 10 fois */ i<10; i++)

Commentaires – Troisième type

Ce type de commentaire est destiné au programme javadoc.exe, livré avec le SDK. Il permet de documenter automatiquement une application.

Sans entrer dans les détails, sachez que les lignes de code qui commencent par les caractères “/**” contiennent des commentaires qui seront automatiquement insérés dans un document HTML lors de l’exécution du programme Javadoc.

Exemple :

/** Ces commentaires
  sont destinés au
  système JAVADOC
  qui génère de la documentation
  API à partir du code */

Identificateurs

Le terme “identificateurs” désigne les constantes, les variables et les objets utilisés dans le langage. Ces derniers commencent obligatoirement par une lettre (A à Z, a à z, ou une autre lettre appartenant au jeu de caractères Unicode dont la valeur hexadécimale est supérieure à H00C0), un caractère de soulignement (_) ou un dollar ($). Les caractères suivants peuvent être des lettres, des caractères de soulignement, des dollars ou des chiffres.

Par exemple, les noms suivants peuvent être utilisés pour référencer un identificateur :

Var12_5
Bien_que_très_long_ce_nom_est_acceptable
$Celui-ci_aussi

Par contre, ces deux identifiants ne sont pas autorisés :

Nombre d'itérations
4Var

Le premier, parce qu’il contient un espace. Le second, parce qu’il commence par un chiffre.

Remarque
Unicode est un standard qui permet des échanges de texte dans différentes langues.

Mots réservés du langage

Le tableau ci-après liste les mots clés du langage. Ces derniers ne peuvent pas être utilisés comme noms de variable, d’objet, de classe, etc. Leur utilisation sera décrite dans la suite de l’ouvrage.

Mot clé Signification
abstract Définit une classe ou une fonction qui n’a pas été totalement implémentée.
boolean Déclaration d’une variable booléenne.
break Fin prématurée d’une boucle.
byte Déclaration d’une variable byte.
case Teste si une variable a une valeur particulière dans un bloc switch.
catch Traitement suite à une exception.
char Déclaration d’une variable char.
class Déclaration d’une classe.
const Ce mot est réservé mais pas utilisé dans le langage.
continue Interdit l’exécution d’une boucle lorsqu’une condition logique est satisfaite.
default Permet d’exécuter un bloc d’instructions lorsque aucune des constantes case ne concorde avec l’expression placée après le mot switch.
do Boucle do while.
double Déclaration d’une variable double.
else Dans une instruction if else, permet d’exécuter un bloc d’instructions si la condition if n’est pas satisfaite.
extends Permet de sous-classer une classe parent.
false Valeur booléenne false.
final Indique à Java que la classe courante ne peut être sous-classée.
finally Permet d’exécuter systématiquement une portion de code à chaque occurrence d’une exception.
float Déclaration d’une variable float.
for Exécute répétitivement un bloc d’instructions.
goto Ce mot est réservé mais pas utilisé dans le langage.
if Teste une condition logique.
implements Détermine l’interface à utiliser.
import Fait référence à un package Java externe.
instanceof Détermine le type d’un objet.
int Déclaration d’une variable int.
interface Indique à Java que le code qui suit doit être utilisé pour définir une nouvelle interface.
long Déclaration d’une variable long.
native Permet d’appeler un programme externe.
new Permet de définir une nouvelle instance de classe.
null Correspond à une valeur non existante.
package Indique à Java le nom du package auquel se réfère le code qui suit.
private Définit une classe, une méthode ou une variable private.
protected Définit une classe, une méthode ou une variable protected.
public Définit une classe, une méthode ou une variable public.
return Définit la valeur retournée par une classe ou une méthode.
short Déclaration d’une variable short.
static Définit une classe, une méthode ou une variable static.
super Fait référence à la classe parent de la classe courante.
switch Permet d’effectuer un test multiple sur une variable.
synchronized Indique à Java qu’une seule instance de cette méthode peut être exécutée à la fois.
this Fait référence à l’objet courant.
throw Indique à Java qu’une exception particulière (autre que Errors et Runtime) doit être traitée dans le prochain bloc catch.
throws Détermine les exceptions gérées par le programmeur dans une déclaration de méthode.
true Valeur booléenne true.
try Définit un bloc de code dans lequel une ou plusieurs exceptions peuvent se produire. Un bloc try doit être suivi d’un bloc catch qui traite les exceptions correspondantes.
void Déclare une procédure Java qui ne renvoie aucune valeur.
volatile Les variables de type volatile peuvent changer de valeur indépendamment du programme Java (date et heure système par exemple)
while Exécute répétitivement un bloc d’instructions.