Java ? Printemps 90 : Naughton, Gosling et Sheridan : –"Le consommateur est le centre du projet,...
29
Java ? • Printemps 90 : Naughton, Gosling et Sheridan : – "Le consommateur est le centre du projet, il faut construire un environnement de petite taille avec une petite équipe et intégrer cet environnement dans une nouvelle génération de machines : des ordinateurs simples pour des gens normaux." • Printemps 91 : Microprocesseur grand public. – La "Green Team" prototype une machine de pilotage de l'électroménager • Août 91 : Gosling développe Oak • Août 92 : --------------duke---------->
Java ? Printemps 90 : Naughton, Gosling et Sheridan : –"Le consommateur est le centre du projet, il faut construire un environnement de petite taille avec
Java ? Printemps 90 : Naughton, Gosling et Sheridan : "Le
consommateur est le centre du projet, il faut construire un
environnement de petite taille avec une petite quipe et intgrer cet
environnement dans une nouvelle gnration de machines : des
ordinateurs simples pour des gens normaux." Printemps 91 :
Microprocesseur grand public. La "Green Team" prototype une machine
de pilotage de l'lectromnager Aot 91 : Gosling dveloppe Oak Aot 92
: --------------duke---------->
Page 2 Java HotJava Aot 1995 Premire licence sur
Netscape">
Java ? Et 1993 : St. "First Person" est en train de couler Eric
Schmidt ( Sun) demande une adaptation au Net Gosling : travaille
sur le code Naughton : cherche une application stratgique Janvier
1995 Oak ==> Java HotJava Aot 1995 Premire licence sur
Netscape
Page 3
Java : Principes Simple : C++ sans les couteaux ni les rvolvers
Orient Objet Orient rseau : Classes de gestion des protocoles
Robuste : Typage fort compilation et excution Sr et scuris
Indpendant du matriel : byte-code Portable : spcification prcise
(int=int) Haute performances Multithread Dynamique
Machine Virtuelle : Emulateur Byte-Code/P-Code/J-Code opcode :
1 octet pour l'instruction 0,n oprandes MicroProcesseur logiciel
Jeu d'instructions Registres (pc, optop, frame, vars) Pile, Heap
Ramasse-miettes Espace de stockage des mthodes Tas de constantes
==> Compil ou Interprt
Page 6
Un langage de programmation
Page 7
Bases du langage Types byte : 1 octet short : 2 octets int : 4
octets long : 8 octets float : 4 octets double : 8 octets boolean :
true false char : 2 octets (Unicode) Instructions if while, do
while, for selection (switch) Oprateurs Arithmtique : =+-*/%
Relationnels : = == != Logiques : ! && || Incrments : ++ --
Bit Wise : & | ^ ~ >> >> Affectation : = += -= *=
/= %=
Page 8
Abstraction Hritage extends hritage simple super : Accde la
mthode parente this : Accde l'objet lui-mme Classes abstraites
Page 9
Interface Toutes les mthodes sont abstraites et publiques Tous
les attributs sont final public static Spcification formelle de
classe Indique les services rendus par la classe qui implante
l'interface Une classe peut implanter plusieurs interfaces public
interface Translatable {... abstract public void translater();...}
public class Cercle extends FigureGeometrique implements
Modifiable, Translatable { public void translater(){... } public
void modifier(){...}}
Page 10
Encapsulation Porte des donnes private, (vide), protected,
public Paquetage Ensemble de classes Permet de : regrouper les
classes d'un point de vue conceptuel Dfinir une protection sur les
attributs partags Rpertoire physique
Mcanisme d'exception class PileSale {... assiette depiler()
throws Exception { if (pileVide()) throw new Exception("trop tard !
f(depiler)"); return (elementsuivant()); } class MachineALaver{
void laver() throws Exception {... assiettessales.depiler(); }
class Bonnes_Resolutions { void bonneresolution1 () { try
{mamachinealaver.laver();} catch {Exception e) {
e.printStackTrace(); }
Page 15
Threads Execution de tches en // Mmoire, Code et Ressources
partags Economie de ressources Un thread ~= mthode qui rend
immdiatement la main Exemple vnements (IHM, Rseau) + priorits +
synchronisation (moniteur, synchronized)
Page 16
Gestion de l'interface utilisateur
Page 17
Paquetage Awt Abstract Window Toolkit Composants simple et
conteneur A chaque conteneur est associ une mise en page assure par
l'interface LayoutManager flowlayout borderlayout cardlayout
gridlayout gridbaglayout
Page 18
Java Awt : Container Conteneurs de composants, hritent de la
classe abstraite Container Panel, // Container dans un autre
container : exApplet ScrolPane, //Ajoute les barres de dfilement
Window //Fentre sans bordure ni menu, borderLayout par default
Frame // windows + Titre Dialog //Saisie de donnes (setModal,
isModal) FileDialog //Fonction du SE instanciate, setLayout, add,
remove, getComponents class HelloWeb { public static void main(
String[] args) { Frame uneFrame=new Frame("Le Titre");
uneFrame.add("Center", new Label("Bonjour", Label.CENTER));
uneFrame.pack(); uneFrame.show(); }
Page 19
Layout Managers FlowLayout : standard, gauche droite, mais
centr setLayout(new GridLayout(3,2)); //ligne, colonne (2,0)
BorderLayout : North, South, East, West, Center p.add(new
Button("Ouest")); CardLayout : Pile de cartes : first( ), last( ),
next( ) et previous() GridBagLayout : Position relative entre les
composants en utilisant des contraintes Composants sont organiss
sur une grille logique Complexe
Page 20
La gestion des vnements Evnements = objets drivs de EventObject
Source drive d'un composant graphique Le dlgu implante des
interfaces spcifiques drivant de EventListener public Listener add
Listener( Listener leDelegue)
Page 21
Adaptation au Web
Page 22
Deux formes de Java Exemple d'application public class
MonApplication { public static void main (String args[]) {
System.out.println("Salut !"); } Application=classe main() Nom
classe = nom de fichier Exemple d'applet import java.awt.*; import
java.applet.Applet; public class MonApplet extends Applet { public
void paint (Graphics g) { g.drawString("Mon Applet",5,15); }
applet=classe hrite d'Applet execut par une page html nom classe =
nom fichier
Page 23
Cycle de vie Une applet hrite de la classe Applet elle est
pilote par le browser Web constructeur appel en premier init()Une
seule fois la cration de l'applet start()Appele aprs init() et
chaque fois qu'elle a t stoppe stop()Appele chaque fois que
l'applet doit tre interrompue destroy()Appele lorsque le client
quitte la page HTML paint()Appele chaque fois que l'Applet doit se
redessiner
Modle d'criture du code Modles d'criture du code proprits
(normales, indexes, lies et contraintes) public integer getAge( );
public void setAge(integer a); public boolean isHomme(); void
setNom(int index, String nom); String getNom(int index); void
setNom(String values[]); String[ ] getNom(); vnements public void
add ( a) public void remove ( a) Mthodes publiques
PropertyChangeListener / PropertyChangeSupport
Page 27
JavaBeans : March du composant Dveloppement de Bean
Infrastructure d'intgration Infrastructure de fonctionnement
Applications spcialises
Page 28
Composants distribus...
Page 29
Java : Conclusion Augmente la productivit moins coteux pour les
dcideurs plus intressant pour les dveloppeurs (comparer) Langage
d'avenir pour : les applications distribues (portable, scuris) le
dveloppement OO simple, puissant, outill, bibliothques les
applications embarques Introduit tous les mcanismes des langages de
programmation modernes Langage universel