Syntaxe
#
-
Premier pas
-
Premier pas # HelloWorld # 1 2 3 4 5 6 7 public class HelloWorld { public static void main(String[] args) { System.out.println("Hi Guys!"); } } Compiler/Exécuter # 1 2 3 javac HelloWorld.java // compilation java HelloWorld // exécution java -ea HelloWorld // exécution avec assert Avec les fonctionnalités en mode “preview” (exemple pour jdk-17):
1 2 javac --enable-preview --source 17 HelloWorld.
-
Niveau élémentaire
-
Résumé syntaxique élémentaire # Utilisation d’objets/classes existantes # Création d’une date (rappel: cette classe est obsolète) # Date d = new Date(1981, 5, 1); Se traduit par: d est une référence de type Date qui pointe sur un objet de type Date. Date(...) est un constructeur d’objet new indique que l’objet est instancié ; un espace mémoire lui est réservé ; plus ou moins équivalent à un malloc en C.
-
Niveau intermédiaire
-
Résumé syntaxique intermédiaire # Quatre niveau de visibilité (appelé modifiers en anglais) # private : accès possible à l’intérieur de la classe protected : accès possible pour les sous-classes par défaut (si aucun mot clé non précisé) : accès possible dans le package où se trouve la classe public : accès possible à l’extérieur Ces modifiers_ s’appliquent aux méthodes, aux champs, aux interfaces et aux classes. Le tableau suivant montre les accès aux membres:
-
Niveau avancé
-
Résumé syntaxique avancé # Générique # Il s’agit du dernier type de polymorphisme: le polymorphisme paramétrique.
Terminologie:
Pour un type G<E> G est un type générique. E est un type paramétrique ou un paramètre du type G. Un type générique peut avoir plusieurs paramètres. Une fois le ou les paramètres renseignés, un type générique devient un type concret: G<Integer> est un type concret Il est possible de borner un paramètre: G<E extends X> indique que le paramètre doit au moins éteindre d’un type X Effacement # Lors de la compilation, un paramètre est remplacé par un Object (si non borné).