Formation complète la programmation en java, tutoriel & guide de travaux pratiques en pdf.
1 Notes de cours
1.1 Introduction
1.1.1 Hello World !
1.1.2 Formats de chiers
1.1.3 Machine virtuelle
1.1.4 Linkage
1.2 Le Java procedural
1.2.1 Structure d’une classe
1.2.2 Variables
1.2.3 Entrees-sorties
1.2.4 Sous-programmes
1.2.5 Main
1.2.6 Instructions de controle
1.2.7 Exemple recapitulatif
1.3 Objets
1.3.1 Creation d’un type
1.3.2 Les methodes
1.3.3 L’instanciation
1.3.4 Les packages
1.3.5 Le mot-cle this
1.4 Tableaux
1.4.1 Declaration
1.4.2 Instanciation
1.4.3 Acces aux elements
1.4.4 Longueur d’un tableau
1.4.5 Tableaux a plusieurs dimensions
1.5 Encapsulation
1.5.1 Exemple
1.5.2 Visibilite
1.5.3 Constructeur
1.5.4 Accesseurs
1.5.5 Surcharge
1.6 Heritage
1.6.1 Heritage
1.6.2 Polymorphisme
1.6.3 Redenition de methodes
1.6.4 Interfaces
1.6.5 Classes Abstraites
1.7 Exceptions
1.7.1 Rattraper une exception
1.7.2 Methodes levant des exceptions
1.7.3 Propagation d’une exception
1.7.4 Denir une exception
1.7.5 Lever une exception
1.7.6 Rattraper plusieurs exceptions
1.7.7 Finally
1.7.8 RuntimeException
1.8 Interfaces graphiques
1.8.1 Fen^etres
1.8.2 Un premier objet graphique
1.8.3 Ecouteurs d’evenements
1.8.4 Premier exemple
1.8.5 Classes 1.8.6 Gestionnaires de mise en forme
1.8.7 Un exemple complet : Calcul d’un carre
1.9 Collections
1.9.1 Packages
1.9.2 Types parametres
1.9.3 Collections standard
1.10 Threads
1.10.1 Le principe
1.10.2 Synchronisation
1.10.3 Mise en Attente
2 Exercices
2.1 Le Java procedural
2.1.1 Initiation
2.1.2 Arithmetique
2.1.3 Pour le sport
2.2 Objets
2.2.1 Creation d’une classe
2.2.2 Methodes
2.3 Tableaux
2.3.1 Prise en main
2.3.2 Tris
2.4 Encapsulation
2.4.1 Prise en main
2.4.2 Implementation d’une Pile
2.5 Heritage
2.5.1 Heritage
2.5.2 Interfaces
2.5.3 Classes abstraites
2.6 Exceptions
2.7 Interfaces graphiques
2.7.1 Prise en main
2.7.2 Maintenant debrouillez-vous
2.8 Collections
2.8.1 Packages
2.8.2 Types parametrees
2.8.3 Collections
2.9 Threads
2.9.1 Prise en main
2.9.2 Synchronisation
2.9.3 Debrouillez-vous
3 Corrigés
3.1 Java Procedural
3.1.1 Initiation
3.1.2 Arithmetique
3.1.3 Pour le sport
3.2 Objets
3.2.1 Creation d’une classe
3.2.2 Methodes
3.3 Tableaux
3.3.1 Prise en main
3.3.2 Tris
3.4 Encapsulation
3.4.1 Prise en main
3.4.2 Implementation d’une pile
3.5 Heritage
3.5.1 Heritage
3.5.2 Interfaces
3.5.3 Classes abstraites
3.6 Exceptions
3.7 Interfaces graphiques
3.7.1Ecouteurs d’evenement
3.7.2 Gestionnaires de mise en forme
3.8 Collections
3.8.1 Deux objets
3.8.2 Package Pile
3.8.3 Parcours
3.9 Threads
3.9.1 Prise en main
3.9.2 Synchronisation
3.9.3 Mise en attente
Notes de cours
Introduction
Hello World !
Programmation en Java
Copiez le code ci-dessous dans un chier que vous enregistrerez sous le nom HelloWorld.java.
public class HelloWorld
f
public static void main( St r ing [ ] args )
f
System . out . pr i nt l n ( » He l lo World » ) ;
g
g
Ensuite, executez la commande
javac HelloWorld.java
L’execution de cette commande doit normalement faire un appara^tre un chier HelloWorld.class.
Saisissez ensuite la commande :
java HelloWorld
Theoriquement, ce programme devrait acher
Hello World
Formats de chiers
Les programmes java contiennent ce que l’on appelle des classes. Pour le moment nous ne mettrons qu’une seule classe par chier et nous donnerons au chier le meme nom que la classe qu’il contient. Les chiers sources portent l’extension .java tandis que les programmes compiles portent l’extension .class. Le compilateur que nous avons invoque en ligne de commande avec l’instruction javac, a genere le chier .class correspondant au chier source passe en argument.
Machine virtuelle
Le chier .class n’est pas un executable, il contient ce que l’on appelle du pseudo-code. Le pseudo-code n’est pas executable directement sur la plate-forme (systele d’exploitation) pour laquelle il a ete compile, il est necessaire de passer par un logiciel appele une machine virtuelle. La machine virtuelle lit le pseudo-code et l’inteprete (i.e. l’execute). Le grand avantage de Java est que le pseudo code ne depend pas de la plate-forme mais de la machine virtuelle. Un programme compile peut ^etre execute par n’importe quel OS, la seule necessite est de posseder une machine virtuelle Java (JVM) adaptee a cette plateforme.
Linkage
En java, le linkage se fait a l’execution, cela signie que si vous modiez un chier, vous aurez une seule classe a recompiler, et vous pourrez immediatement executer votre application.
Le Java procedural
Ce cours vous introduit au Java dans sa dimension procedurale. Le but de ce cours est de vous familiariser avec les instructions de base avant d’aborder les concepts de la programmation objet.
Structure d’une classe
Pour le moment, nous appellerons classe un programme Java. Une classe se presente de la sorte :
class NomClasse
f
/
Class content s
/
g
Vous remarquez que de facon analogue au C, une classe est un bloc delimite par des accolades et que les commentaires d’ecrivent de la meme facon. On ecrit les noms des classes en concatenant les mots composant ce nom et en faisant commencer chacun d’eux par une majuscule. N’oubliez pas de ne mettre qu’une seule classe par chier et de donner au chier le m^eme nom que celui de cette classe.
Variables
Nous disposons en Java des m^emes types qu’en C. Tous les types mis a votre disposition par Java sont appele types primitifs.
Booleens
L’un deux nous servira toutefois a ecrire des choses que l’on redige habituellement de facon crade en C :
boolean. Une variable de type boolean peut prendre une des deux valeurs true et false, et seulement une de ces deux valeurs. On declare et utilise les variables exactement de la m^eme facon qu’en C.
Entrees-sorties
La saisie de variables est un calvaire inutile en Java, nous nous en passerons pour le moment. Pour acher un message, quel que soit son type, on utilise le sous-programme System.out.print. Par exemple, System . out . pr int ( « He l lo World n n » ) ;
Le sous-programme System.out.println ajoute automatiquement un retour a la ligne apres l’achage.
On aurait donc pu ecrire :
System . out . pr i nt l n ( « He l lo World » ) ;
Sous-programmes
On denit en Java des sous-programmes de la m^eme facon qu’en C, attention toutefois, les sous-programmes que nous denirons dans ce cours seront declares avec le mot-cle static. Par exemple, si je veux faire un sous-programme qui retourne le successeur de la valeur passee en argument cela donne class TestJavaProcedural
f
static int succ ( int i )
f
return i + 1 ;
g
/
Autres sous programmes
/
g
Si vous oubliez le mot cle static, le compilateur vous enverra des insultes. Nous verrons plus tard ce que signie ce mot et dans quels cas il est possible de s’en passer. Attention : Tous les types primitifs en Java se passent en parametre par valeur, et cette fois-ci je ne vous mens pas !
Main
Lorsque vous invoquez la machine virtuelle, elle part a la recherche d’un sous-programme particulier appele main. Il est imperatif qu’il soit deni comme suit :
public static void main( St r ing [ ] args )
f
/
i ns t ruc t i ons
/
g
La signication du mot-cle public vous sera expliquee ulterieurement. La seule chose dont il faut prendre note est que vous ne devez pas l’oubliez, sinon la machine virtuelle vous enverra des insultes !
Instructions de controle de ux
En Java, les instructions if, switch, for, while et do … while se comportent de la m^eme facon qu’en C. Donc, pas d’explications complementaires…
Exemple recapitulatif
Nous avons maintenant tout ce qu’il faut pour ecrire un petit programme :
public class Exemple
f
/
Retourne l e nombre b e l eve a la puissance n .
/
static int pui ssance ( int b , int n)
f
Objets
Dans un langage de programmation, un type est
{ Un ensemble de valeurs
{ Des operations sur ces valeurs
En plus des types primitifs, il est possible en Java de creer ses propres types. On appelle type construit un type non primitif, c’est-a-dire compose de types primitifs. Certains types construits sont fournis dans les bibliotheques du langage. Si ceux-la ne vosu satisfont pas, vous avez la possibilite de creer vos propres types.
……
Programmation en java (522 KO) (Cours PDF)