Cours 1

publicité
Notes de cours 1
Les bases
Définition :
JAVA :




Langage développé pour programmer des appareils électroniques intelligents.
Appelé Oak, parce que James Gosling avait vu un chêne par sa fenêtre. Le
nom était déjà pris  On choisit JAVA en l’honneur du café.
Pour plus d’information : http://java.sun.com/features/1998/05/birthday.html
L’idée visée : un langage multi-plate-forme, stable.
P.O.O.
Avantage :
 Lisibilité
 Réutilisation
 Modification
 Stabilité
Objet :


Composant logiciel réutilisable qui modèle un élément du monde réel.
On crée des objets le plus prêt de la réalité possible, pour avoir une abstraction
plus claire.
Membre :
 Ce que l’on retrouve dans une classe.
 Les membres d’une classe peuvent être privés, publiques, protégés, statiques,
finaux, synchronisés, etc. Des combinaisons sont également possibles.
Primitive :
 Types de base qui sont les seuls en Java à ne pas être des objets.
 Ces types sont : int, float, boolean, double, long, char, byte.
 On n’a pas à effectuer de « new » sur une primitive.
 On utilise les primitives au plus bas niveau pour définir les types des données
brutes.
Encapsulateur :
 Type qui permet d’encapsuler une primitive dans un objet pour faciliter sa
manipulation.
 Exemple : Integer, Float, etc.
Attribut :
 Membre d’un classe qui est une variable (une primitive ou un objet). Les
attributs sont habituellement privés (en fait toujours) à l’exception des
attributs statiques finaux (constantes).
Méthode :
 Membre d’une classe qui est une fonction ou une procédure. On appelle
Interface l’ensemble des méthodes publiques d’une classe.
Constructeur :
 Méthode dans une classe qui porte le même nom que la classe.
 Sans type de retour (même pas void).
 On surcharge souvent le constructeur, pour en avoir un par défaut (sans
paramètre).
 Initialise tous les membres de la classe, gère la naissance de l’objet.
 Il y toujours un constructeur dans une classe. S’il n’y en a pas un
d’explicitement défini, il y en a un implicite qui initialise à 0 tous les bits de
l’objet.
 Ne réserve pas de mémoire, ce travail est effectué par l’opérateur new.
Destructeur :
 Méthode qui est exécuté juste avant la libération de la mémoire.
 En Java, le destructeur se nomme « public void finalize() ».
 En C++, il porte le même nom que la classe avec un tilde devant
(~NomClasse() ).
 Le destructeur est unique.
 Il ne libère pas la mémoire de l’objet, mais gère la mort de l’objet (fermeture
de fichiers, sauvegarde, libération de mémoire en C++).
Instance :
 Lorsque l’on réserve un espace mémoire pour un objet, on instancie une
classe. On crée une instance de cette classe.
 On instancie à l’aide de l’opérateur « new ». Cet opérateur fait trois choses
dans cet ordre :

1. Réserve un espace mémoire de la taille de son opérante.
2. Appelle le constructeur de la classe, qui porte le même nom que cette
classe.
3. Retourne l’adresse de l’espace qui a été réservé.
On n’a pas besoin de libérer les espaces mémoire réservés en JAVA, le
ramasse miettes (garbage collector) s’en occupe. Notons que ce n’est pas le
cas de tous les langages objets .
Statique :
 Un membre peut-être statique dans une classe. On dit alors que c’est un
membre de classe, plutôt qu’un membre d’objet.
 On ne retrouve qu’un seul exemplaire d’un attribut statique pour tous les
objets d’une classe.
 Une méthode statique ne peut utiliser que des membres statiques de la classe.
 On peut utiliser les membres statiques d’une classe sans que celle-ci aie été
instanciée.
Les objets en JAVA :
Les objets en Java sont toujours représentés par des pointeurs. Tout, exception
faite des primitives, est objet. On appel cependant ces pointeurs des surnoms (handle).
Les pointeurs (retour) :
 Les pointeurs sont des variables qui contiennent des adresses.
 On peut avoir plusieurs pointeurs sur un même objet, c’est une pratique
courante.
Création d’objet :
Lorsque l’on veut créer un objet en JAVA, on se crée un pointeur (surnom) du
type de l’objet que l’on veut. Ensuite, on réserve un espace mémoire et on place le
pointeur sur cet espace.
Complexe.java
public class Complexe
{
private int Entier;
private int Abstrait;
public Complexe (int E, int A)
{
Entier = E;
Abstrait = A;
}
public Complexe ()
{
this (0,0);
}
public void Afficher()
{
System.out.println ("" + Entier + " " + Abstrait + "i");
}
}
Exemple1.java
public class Exemple1
{
public static void main (String Arg[])
{
Complexe N1;
N1 = new Complexe(12,3);
N1.Afficher();
Complexe N2 = new Complexe (4,2);
N2.Afficher();
Complexe N3 = N2;
N3.Afficher();
(new Complexe()).Afficher();
}
}
(Pour les zélés)
Représentation après l’exécution, avant la libération de la mémoire.
N3
N1
N2
0
0
12
4
3
2
Les Tableaux en JAVA :
Les tableaux en JAVA sont également des objets. Ils ont tous un champs length,
qui donne la longueur du tableau. On peut faire des tableaux de tout type ou de plusieurs
dimensions.
Tableau.java
class Tableau
{
public static void main (String Arg[])
{
int Tab1[];
Tab1 = new int[5];
int Tab2[] = new int [5];
int Tab3[][] = new int [5][5];
for (int x=0; x<5; x++)
{
Tab1[x] = x;
Tab2[x] = x;
for (int y=0; y<5; y++)
Tab3[x][y] = x*5 + y;
}
System.out.println ("Tab1 :" + Tab1.length);
System.out.println ("Tab2 :" + Tab2.length);
System.out.println ("Tab3 :" + Tab3.length);
System.out.println ("Tab3[2] :" + Tab3[2].length);
}
}
Exercices :
1) Programmer un objet calculatrice qui reçoit deux chiffres demandés à l’usager et qui
retourne le résultat de l’addition. Utiliser la méthode Lire, ici bas.
public static char Lire()
{
char Retour=’T’;
try
{
Retour = (char)System.in.read();
while ((char)System.in.read() != ‘\n’);
}
catch (java.io.IOException e)
{
//Ca arrive jamais!!!
}
return Retour;
}
2) Programmer un simulateur de chronomètre qui demande le temps en seconde à
l’usager, puis qui affiche un décompte jusqu’à 0 de ce temps.
 Utilisez la méthode currentTimeMillis() de l’objet System. Elle retourne le
nombre de milli-seconde depuis 1970 (voir le site de java)
3) Programmer un jeu de TicTacToe complet (Niveau 2).
Votre meilleur ami :
http://java.sun.com/j2se/1.4.1/docs/api/
Téléchargement