1
Programmation Java - bases
Programmation objet avec Java (1)
Christelle Urtado & Sylvain Vauttier
Janvier 2013
Objectifs du cours et organisation
Séances de Cours / TD
Cours 3 séances = 9 heures
TD 4 séances = 12 heures (Abderrahman Mokni)
Connaissance et pratique simple du langage
(Re)voir les concepts de base de la programmation par
objet et leur mise en œuvre dans le langage Java,
(Re)voir les concepts de base de la programmation en
langage Java : mots-clés / structures de contrôle /
exceptions
(Re)voir (utiliser) les bibliothèques de classes utiles.
2
Repères
Plan 1970 1980 1990 2000 2010
Langage C - D. Ritchie - Bell
Langage C - D. Ritchie - Bell Labs
Labs
Langage C++ - B.
Langage C++ - B. Stroutstrup
Stroutstrup
AT&T Bell
AT&T Bell Labs
Labs
Langage Pascal - N.
Langage Pascal - N. Wirth
Wirth - ETH Zurich
- ETH Zurich
Langage Java - J.
Langage Java - J. Gosling
Gosling
Sun
Sun Microsystems
Microsystems
- typage statique fort
- programation structurée : goto
- «!Algorithms + Data Structures = Programs!»
- le langage créé pour écrire UNIX
- rapide et bas niveau (pointeurs, moire)
- initialement pas normalisé et peu portable
- du C avec des objets
- un efficace «!pot-pourri!»
- la maturité de l’objet ?
- «!Write once, run everywhere!»
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
Historique des principales versions
1996, JDK 1.0
1997, JDK 1.1
refonte du modèle des IHM , JavaBeans, RMI
1998, J2SE 1.2
réflexion, nouvelle API pour les IHM (Swing),
compilation juste à temps, structures de données
standards (Collections)
2004, J2SE 5.0
types génériques, annotations, conversions
automatiques type primitif classe enveloppe
(autoboxing / unboxing), enumérations,
amélioration des boucles for, spécialisation
covariante des types de retour des méthodes
2011, Java SE 7 : version courante
possible de mettre des String dans switch
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
3
Qu’est-ce qu’un programme autonome
Java ?
Programme autonome
vs
applet
Un ensemble de classes
classes qui définissent chacune
des données (ses attributs
attributs),
et des fonctionnalités (ses m
mé
éthodes
thodes).
Une de ces classes contient le programme
principal c-à-d la méthode main.
Le code de chacune de ces classes est écrit dans
un fichier qui porte le même nom que la classe
suivi de l’extension .java
Lorsque le programme devient conséquent, les
classes sont «!rangées!» dans des paquetages
paquetages.
Le code peut utiliser des fonctionnalités :
que vous avez décrites dans d’autres classes,
qui existent déjà dans les classes de l’API
API Java.
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
Comment exécuter un programme
autonome Java ?
Fichier de code Java
Machine virtuelle Java
(JVM)
Compilateur
Fichier de byte code
(pseudo code)
javacMaClasse.java MaClasse.class
java
Autres fichiers
de pseudo-code
$ javac MaClasse.java
$ java MaClasse
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
4
Classes
public class Carre
{
private float cote;
public Carre (float leCote)
{
cote = leCote;
}
public float getCote ()
{
return (cote);
}
public float calculeSurface ()
{
return (cote * cote);
}
}
une classe
import java.util.*;
public class ProgPpal
{
private Vector lesFigures;
public static void main (String args [])
{
lesFigures = new Vector ();
Carre monCarre = new Carre (10);
System.out.println("Mon Carré possède un côté de : ",
monCarre.getCote (), "cm.");
lesFigures.addElement (mon Carre);
}
}
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
Attributs
public class Carre
{
private float cote;
public Carre (float leCote)
{
cote = leCote;
}
public float getCote ()
{
return (cote);
}
public float calculeSurface ()
{
return (cote * cote);
}
}
import java.util.*;
public class ProgPpal
{
private Vector lesFigures;
public static void main (String args [])
{
lesFigures = new Vector ();
Carre monCarre = new Carre (10);
System.out.println("Mon Carré possède un côté de : ",
monCarre.getCote (), "cm.");
lesFigures.addElement (mon Carre);
}
}
un attribut
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
5
Méthodes
public class Carre
{
private float cote;
public Carre (float leCote)
{
cote = leCote;
}
public float getCote ()
{
return (cote);
}
public float calculeSurface ()
{
return (cote * cote);
}
}
une méthode
import java.util.*;
public class ProgPpal
{
private Vector lesFigures;
public static void main (String args [])
{
lesFigures = new Vector ();
Carre monCarre = new Carre (10);
System.out.println("Mon Carré possède un côté de : ",
monCarre.getCote (), "cm.");
lesFigures.addElement (mon Carre);
}
}
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
Objets
public class Carre
{
private float cote;
public Carre (float leCote)
{
cote = leCote;
}
public float getCote ()
{
return (cote);
}
public float calculeSurface ()
{
return (cote * cote);
}
}
un objet
import java.util.*;
public class ProgPpal
{
private Vector lesFigures;
public static void main (String args [])
{
lesFigures = new Vector ();
Carre monCarre = new Carre (10);
System.out.println("Mon Carré possède un côté de : ",
monCarre.getCote (), "cm.");
lesFigures.addElement (monCarre);
}
}
Plan
Introduction
Notions de base
( Classes / Attributs /
Méthodes / Objets)
Construction et
destruction
Paquetages et rapide
panorama de l’API
Compléments objet
(Héritage et visibilité)
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !