31 0 687KB
Cours 1
Contenu du cours :
" " " " " " " "
Premières applications Compilation, Exécution, Chemin Affichage et saisie Types de données Flux de contrôle Applets Arrays OO de base
1
Edition Le fichier texte HelloWorld.java
Une seule classe publique par fichier source. C'est elle qui donne le nom au fichier. Les classes exécutables ont une méthode main.
2
3
Programmation
Edition
Compilation
Exécution
Correction d'erreur
Il faut compiler et exécuter souvent un programme. Cela permet de vérifier chaque partie individuellement plutôt que tout le programme
4
Compilation C:\>cd C:\Program Files\Java\jdk1.5.0_15\bin C:\Program Files\Java\jdk1.5.0_15\bin\> javac HelloWorld.java
HelloWorld.class
HelloWorld.java Source Code
Byte Code Génération du byte code reconnu par JVM
On compile un fichier « .java » avec la commande javac
5
Correction d'erreur Fichier contenant l'erreur
N° de ligne de l'erreur
Endroit exact de l'erreur
Nombre d'erreurs
Le compilateur aide à trouver les erreurs. (Nombre d'erreurs, ligne de l'erreur, type d'erreur...)
6
Exécution C:\Program Files\Java\jdk1.5.0_15\bin\> java
HelloWorld.class
HelloWorld
Bonjour
On exécute une classe, pas un fichier « .class » La JVM exécute la méthode main de la classe spécifiée.
7
Affichage Dans la console System.out.println
Changement du chemin • Pour ne pas toujours enregistrer dans le bin de java • Changer le chemin du bin pour avoir accès à javac et java
Affichage
9
Importation de la classe JOptionPane
Affichage dans une fenêtre.
Force la sortie du programme. (Obligatoire en mode graphique)
On peut utiliser différentes options d'affichage avec JOptionPane
10
Affichage Dans une fenêtre JOptionPane.showMessageDialog
On peut afficher des messages dans une fenêre de dialogue à l'aide de la classe JOptionPane.
Saisie en mode textuel // Un programme Java qui calcule le carré d’un nombre // importer la classe Scanner import java.util.Scanner ; public class Carre { public static void main (String args[]) { Scanner entree; int nombre; int carre; System.out.print("Donner un nombre : "); entree = new Scanner(System.in) ; nombre = entree.nextInt() ; carre = nombre * nombre ; System.out.print("Le carré du nombre est : " + carre); } }
Saisir en mode textuel
11
12
Saisie en mode graphique
Commentair e multi lignes Commentaire sur une ligne
Permet la saisie
Convertion en entier
On peut faire afficher une fenêtre pour faire saisir une chaîne à l'utilisateur à l'aide de showInputDialog
Types de données Types de données
Types primitifs
Types objets String , HelloWorld, etc.......
Numériques byte "short "int "long "float "double
boolean
"
char
Les types de données primitifs sont les types de base. Il existe différentes méthodes de convertion entre ces types.
13
Contrôle de flux et évaluation if ( noteEtudiant >50) System.out.println(“L’étudiantE passe” ); else System.out.println(“L’étudiantE échoue” );
Syntaxe du langage C
14
15
Utiliser la documentation de la jdk http://java.sun.com/j2se/1.5.0/docs
La documentation de la JDK est l’outil de base de programmation en java !
Utiliser la documentation des APIs
16
http://java.sun.com/j2se/1.5.0/docs/api Liste des paquets
Documentation de la classe sélectionnée Liste des classe du paquet sélectionn é
La documentation des classes de la JDK est facile et rapide à utiliser.
17
Applets Java
Internet Serveur HTTP HTML + Applet
Navigateur Java
JVM
Une applet Java est un programme téléchargeable qui peut s'exécuter dans un navigateur. Il est installé en visionnant une page HTML.
Première Applet
18
Balise
19
Paramètres de la balise applet
Balise applet
Le paramètre "code" indique le nom de la classe à exécuter. Le paramètre "codebase" indique l'URL où le code à télécharger réside.
Exécution d'une applet
C:\>temp\appletviewer HelloApplet.html
HelloApplet.html
Avec appletviewer, on exécute une page « .html » , pas un fichier « .class » ni une classe ! Ouvrir le fichier .html dans un browser quelconque
20
Tableaux
Les tableaux ont une taille fixe. Ils ne sont pas redimmensionnables.
21
Tableaux Les tableaux sont indexés à partir de 0
En java, les tableaux sont considérées comme des classes sans méthode. La variable membre « length » donne la longueur du tableau. Le dernier élément d'un tableau de taille n se trouve à l'index n-1.
22
Tableaux
Les variables de types primitifs sont initialisées à 0 pour les types numériques et à false pour les booléens. Les références sur les objets sont initialisées à null.
23
Tableaux
Une référence indique un emplacement mémoire. Cet emplacement ne représente rien en dehors de la JVM.
24
Tableaux à plusieurs dimensions
0 1 matI2[0] est un tableau à une dimension
En java, les tableaux à plusieurs dimensions sont vus comme des tableaux de tableaux (de tableaux, de tableaux, etc)
25
Passage de tableaux en paramètres
26
Passage de tableaux en paramètres
En java, les tableaux sont considérées comme des classes sans méthode. Ils sont passés par références, le mode de passage d’un élément du tableau dépend du type de l’élément (primitif ou objet).
27
28
Structure d’un fichier java Commentaire de classe
Déclaration de classe
Données membres Commentaire de méthode
Déclaration de méthode
Paramètre (variable locale)
Variable locale
Les instructions java sont autorisées UNIQUEMENT dans les méthodes. Variable déclarée dans une méthode variable locale Variable déclarée dans la classe donnée membre
Création de classes Modificateur: Tout le monde peut appeler cette classe pour lui demander des services.
Définition de classe
Nom de la classe
Début et fin de la classe
Une classe rend des services. Pour accéder à un de ses services, on invoque (=appelle) une de ses méthodes.
29
30
Création de méthodes
signature
bloc d'instrcutions
Trois méthodes de la classe MaClasseMath. Une méthode est composée d'une signature et d'un bloc d'instructions
Signature de méthode Cette méthode est accessible à tous.
Type de retour
Nom de la méthode
Argument ou liste d'arguments (séparés par une virgule)
Une signature de méthode est une déclaration de service. La façon dont le service est réalisé ne regarde pas l'appelant. On parle d'encapsulation.
31
Constructeurs et instanciations Un constructeur est une méthode particulière d'une classe.
Il peut y avoir plusieurs constructeurs dans/pour une même classe. Les constructeurs n'ont pas de type de retour. Les constructeurs portent le même nom que la classe.
32
Constructeurs et instanciations Pour créer de nouveaux objets (=instances) d'une classe, on appelle un des constructeurs de cette classe.
Un appel à un constructeur est toujours précédé du mot-clef "new". On dit que personne2 réfère à un objet de la classe Personne.
33
34
Références et objets Code java personne0
Code java personne0 personne1
Code java personne0 personne1
JVM personne
JVM personne personne
JVM personne personne
En java, on ne manipule que des références qui pointent vers des objets. Dès qu’un objet n’est plus référencé, il est garbage collecté.
Données membres (1)
Ces 2 champs sont des variables d'instances. Leur contenu varie pour chaque objet, elles sont accessibles à tous.
35
Données membres (2)
L’age de jean est 20 ans
L’age de jean est -1 ans
Petite astuce pour faire une pause
Lorsque les données sont publiques, il est impossible de contrôler la façon dont elle sont utilisées. Cela peut rendre vos objets incohérents
36
Masquage de données (1)
On masque les données aux clients en les rendant privées. Et on donne des méthodes d’accès publiques. Les méthodes d’accès ont un nom standardisé.
37
Masquage de données (2)
38
L’age de jean est 20 ans
L’age de jean est 0 ans
Les clients doivent passer par les méthodes du serveur pour manipuler leurs données.
39
Masquage de données (3) Le masquage de données permet: de valider les donnéees en entrée de formater les données en sortie de cacher aux clients les structures de données manipulées de s’assurer de la cohérence interne des objets. En règle générale : les données sont privées les méthodes sont publiques (sauf celles qui sont utilisées en interne par une classe) Principe du moindre privilège
40
Portées des variables & this La variable locale maValeur masque la donnée membre maValeur 8 5
Les données membres ont une portée globale dans la classe. On utilise le mot clef « this » pour accéder à une donnée membre lorsqu’une variable locale porte le même nom.