Sommaire: Les bases du langage Java
Chapitre 1 – Les bases du langage Java_Les données
Les primitives6 • Table des primitives
• Portabilité
• Initialisation des primitives_
• Les valeurs littérales
• Casting sur les primitives
Les constantes
Les handles
• final_
Les chaînes de caractères
Les tableaux
• Déclaration_
• Initialisation
Les vecteurs
Les collections
Les itérareurs
Les comparateurs
Les opérateurs
Description des principaux opérateurs_
• Opérateur d’affectation_
• Opérateurs arithmétiques à deux opérandes
• Opérateurs à un opérande• Opérateurs relationnels_
• Méthode equals_
• Opérateurs logiques_
• Opérateurs d’arithmétique binaire
• L’opérateur à trois opérandes
• Opérateurs de casting new
Instance of L’opérateur + pour String Priorité des opérateurs Les structures de contrôle Mots clés
• static
• final_
• synchronized
• native
• transient
• volatile
• abstract_
Chapitre 2 – Concepts de base de la programmation orientée objet Introduction« Tout est objet ! »_
Illustration des concepts de classe et d’objet
Les classes
Définition
Les classes final _
Les classes internes
• Plusieurs classes dans un même fichier
• Les classes imbriquées ou static_
• Les classes membres_
• Les classes locales
• Les classes anonymes
Les champs
Définition
Variables d’instances & Variables static
Les variables final
Les méthodes Les retours
Les méthodes d’instances
Les méthodes static Les méthodes native_
Les méthodes final Les constructeurs_
Les constructeurs : création d’objets_
• Les constructeurs (constructor)
• Exemple de constructeurs
• Création d’objets (object)
• Surcharger les constructeurs_
• Autorisation d’accès aux constructeurs Initialisation des objets
• Les initialiseurs de variables d’instances et statiques
• Les initialiseurs d’instances_
• Les initialiseurs statiques
• Les variables final non initialisées Les finaliseurs
La destruction des objets (garbage collector)
Le concept de l’héritage Hiérarchie des classes
• Extends
• Référence à la classe parente_
Redéfinition des champs et des méthodes
• Redéfinition des méthodes La surchage
• Surcharger les méthodes_
Accessibilité_
• public_
• protected_
• Autorisation par défaut
• private
Les classes abstraites, les interfaces, le polymorphisme
Le mot clé abstract
• Méthodes et classes abstraites
Les interfaces
Casting
• Sur-casting
• Sous-casting_
Polymorphisme
• Utilisation du sur-casting
• Late-binding_
• Polymorphisme
……….
Chapitre 1 – Les bases du langage Java
• Portabilité
A l’inverse de ce qui se passe avec les autres langages, la taille des primitives est toujours la même en Java, et ce quelque soit l’environnement ou le type de la machine. On garantit ainsi la portabilité des programmes Java.
• Initialisation des primitives
Les primitives doivent être déclarées et initialisées avant d’être utilisées. Une primitive non initialisée produira une erreur à la compilation : « Variable may not have been initialized ».
Remarquons que les primitives, lorsqu’elles sont employée comme membre de classe, possède des valeurs par défaut. Il n’est donc pas nécessaire de les initialiser !
• Casting sur les primitives
Les constantes Java ne comporte pas de constantes à proprement parler. Il est cependant possible de simuler l’utilisation de constantes à l’aide du mot clé final. Une variable déclarée final ne peut plus être modifiée une fois qu’elle a été initialisée.
Lorsqu’un élément est déclaré final, le compilateur est à même d’optimiser le code compilé afin d’améliorer sa vitesse d’exécution.
Remarquons que les variables déclarées final peuvent être initialisées lors de l’exécution et non seulement lors de leur déclaration ! (Les bases du langage Java)
• final
L’utilisation de final n’est pas réservé aux primitives. Un handled’un objet peut parfaitement être déclaré final.
Cependant, la contrainte ne s’applique alors qu’au handle, qui ne peut plus voir son affectation modifiée.
L’objet, lui, reste modifiable.
Les chaînes de caractères En Java, les chaînes de caractères sont des objets. Ce sont des instances de la classe String. Depuis les premiers
langages de programmation, les chaînes de caractères ont posé des problèmes ! En effet, s’il est facile de définir différents types numériques de format fixe, les chaînes de caractères ne peuvent pas être représentées dans un format fixe car leur longueur peut varier de 0 à un nombre quelconque de caractères.
Les tableaux
Les tableaux Java sont des structures pouvant contenir un nombre fixe d’éléments de même nature. Il peut s’agir d’objet ou de primitives. Chaque élément est accessible grâce à un indice correspondant à sa position dans le tableau. Les tableaux de Java sont des objets, même lorsqu’ils contiennent des primitives.
• Opérateurs relationnels
Les notions d’équivalence et de non équivalence s’appliquent à toutes les primitives, ainsi qu’aux handles d’objets.
Il faut noter que l’équivalence appliquée aux handles d’objets concerne les handles, et non les objets eux-mêmes ! Deux handles sont équivalents s’ils pointent vers le même objet. Il ne s’agit donc pas d’objets égaux, mais d’un seul objet.
Pour tester si deux objets distincts (ou non) sont effectivement égaux, il convient d’utiliser la méthode equals.
Considérons le petit programme suivant :
Integer a = new Integer(100) ;
Integer b = new Integer(100) ;
Integer c = a ;
• Méthode equals
En fait, la méthode equalsappartient à la classe Object et toutes les autres classes en héritent. On donne ci-dessous sa définition initiale, qui compare les handles:
public equals(Object obj) {return (this == obj) ;}
Dans cette définition, on constate que equalsse comporte exactement comme ==. En revanche, dans la plus part des classes (comme Integer,voir l’exemple précédent) la méthode est redéfinie pour qu’elle compare le contenu des objets plutôt que leur handles.
Cette méthode est souvent problématique et il convient de consulter la documentation.
…………