Java ? Printemps 90 : Naughton, Gosling et Sheridan : –"Le consommateur est le centre du projet,...
Preview:
Citation preview
- Page 1 ">
- 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
- Page 4
- Plateforme Java : architecture Java Client/Serveur : Nicolas,
Avare, Najman - Eyrolles
- Page 5
- 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
- Page 11
- Une librairie standard
- Page 12
- API du JDK (Paquetages) java.lang : classes de bases (+reflect)
java.io : entres/sorties java.util : utilitaires (structures,
dates, events) (+zip) java.net : rseau java.applet : gestion des
applets java.awt : interface graphique (image, +datatransfert,
+event) java.beans : dfinition de composants rutilisables java.math
: entier de taille variable java.rmi : invocation distante (+dgc,
+registry, +server) java.security : (+acl, +interfaces) java.sql :
jdbc... java.text : traduction, chaine=f(langue)
- Page 13
- Des concepts de programmation
- Page 14
- 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
- Page 24
- Composants logiciels : Beans
- Page 25
- Java Beans Composant logiciel Commercialisable Communiquant
Indpendant (Environnement d'intgration) Intgrable != application
interface parfaitement dfinie mthodes, vnements, proprits
- Page 26
- 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