Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
enseignement:d14:tp:tp1 [2018/11/06 16:29] – modification externe 127.0.0.1 | enseignement:d14:tp:tp1 [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== D14 - TP1 - Premiers pas en Java ====== | ||
+ | ===== Objectif ===== | ||
+ | Les objectifs de ce premier TP sont la mise en place de l’environnement de | ||
+ | travail en java et l’étude des fondements du langage. C’est-à-dire d’une part la | ||
+ | compréhension de la compilation et de l’exécution de code java, l’arborescence | ||
+ | classique d’une application et la génération de la documentation et d’autre part | ||
+ | la maîtrise de la création de classes et d’objets. | ||
+ | ===== Une première exécution ===== | ||
+ | ==== Mettre en place l’environnement ==== | ||
+ | La première chose à faire est de fixer quelle distribution du jdk va être utilisée, | ||
+ | pour cela fixer la valeur de la variable d’environnement '' | ||
+ | indiquer son emplacement ''/ | ||
+ | |||
+ | Pour les étudiants de l'UFR de sciences et techniques, les jdk se trouvent dans ''/ | ||
+ | |||
+ | Pour une installation, | ||
+ | * curl -s " | ||
+ | * sdk install java 14.0.2.hs-adpt | ||
+ | * sdk install maven 3.6.3 | ||
+ | |||
+ | Ensuite, on ajoute le répertoire '' | ||
+ | '' | ||
+ | |||
+ | Il est impératif que toutes les documentations suivantes soient ouvertes dans | ||
+ | votre navigateur web : | ||
+ | * la documentation sur les outils Java fournis par Oracle : [[https:// | ||
+ | * la documentation sur les API : [[https:// | ||
+ | |||
+ | ==== Compiler et exécuter une application ==== | ||
+ | A la racine de votre compte ajouter un répertoire '' | ||
+ | appelé répertoire de travail ou workspace, il contiendra tout vos projets). A l’intérieur de votre répertoire de travail ajouter le répertoire '' | ||
+ | de projet ajouter les répertoires standards '' | ||
+ | |||
+ | Dans le répertoire '' | ||
+ | '' | ||
+ | Java {{: | ||
+ | | ||
+ | Ouvrir et modifier ce programme pour que l’instruction '' | ||
+ | |||
+ | A partir de votre répertoire de projet, compiler le programme avec | ||
+ | la commande suivante : | ||
+ | javac -sourcepath src -d build src/ | ||
+ | |||
+ | Regarder dans le répertoire '' | ||
+ | répertoire de projet : | ||
+ | java -classpath build fr.univtln.login.tp.tp1.PremierProgramme Pierre | ||
+ | |||
+ | ===== Générer la documentation ===== | ||
+ | ==== Précision sur la forme ==== | ||
+ | La commande javadoc produit de la documentation en partant de commentaires | ||
+ | particuliers insérés dans le code source des classes (/** ... */). On peut ainsi | ||
+ | documenter les paquetages, classes ou interfaces, variables d’instance, | ||
+ | |||
+ | Les commentaires peuvent contenir du texte simple et des balises HTML de | ||
+ | mise en forme de texte (<I> italique, <B> caractère gras, ... ). On peut utiliser la | ||
+ | balise < | ||
+ | |||
+ | De plus, il est rappelé que le langage Java est entouré d’un ensemble de | ||
+ | bonnes pratiques. Cette page présente les habitudes dans le cadre du langage | ||
+ | java. Lire cette page : [[http:// | ||
+ | |||
+ | Ajouter les commentaires pour les packages (cf. '' | ||
+ | |||
+ | ==== Génération ==== | ||
+ | A partir de maintenant, tous vos programmes seront commentés. | ||
+ | Générer la documentation depuis votre répertoire de projet avec la commande: | ||
+ | | ||
+ | ===== Générer et exécuter l’archive jar ===== | ||
+ | |||
+ | Génerer l’archive de votre projet depuis votre répertoire de projet avec la commande : | ||
+ | cd build; jar cvf ../ | ||
+ | |||
+ | Exécuter le programme en ajoutant le jar au classpath et en indiquant la classe exécutable avec la commande suivante : | ||
+ | java -classpath dist/tp.jar fr.univtln.login.tp.tp1.PremierProgramme Pierre | ||
+ | |||
+ | Il est possible de rendre le jar " | ||
+ | qui indique en particulier quelle est la classe exécutable. | ||
+ | |||
+ | Copier le fichier '' | ||
+ | contenu. Recréer le fichier '' | ||
+ | cd build; jar cvfm ../ | ||
+ | |||
+ | Puis exécuter directement l’archive : | ||
+ | java -jar dist/tp.jar Pierre | ||
+ | |||
+ | ===== Automatiser le processus avec Apache Ant (Partie Dépréciée) ===== | ||
+ | <del> | ||
+ | Comme vous l’avez vu, la compilation d’un projet complet en Java est une tâche | ||
+ | fastidieuse. C’est pourquoi, il est conseillé d’utiliser un outil qui automatise ce | ||
+ | travail : Ant ([[http:// | ||
+ | qui indique les tâches à accomplir, vous trouverez un exemple de ce fichier sur | ||
+ | le wiki {{: | ||
+ | |||
+ | Copier ce fichier dans votre répertoire de projet et regarder son contenu. | ||
+ | Adapter son contenu pour qu’il indique des chemins corrects. | ||
+ | |||
+ | Créer une variable d’environnement '' | ||
+ | de ant (''/ | ||
+ | | ||
+ | Pour obtenir l’ensemble des tâches possibles avec un fichier de construction: | ||
+ | ant -projecthelp build.xml | ||
+ | |||
+ | Pour lancer l’exécution et si nécessaire compiler et générer l’archive : | ||
+ | ant run | ||
+ | |||
+ | </ | ||
+ | ===== Utilisation de l’environnement Eclipse (Partie Dépréciée)===== | ||
+ | <del> | ||
+ | Nous allons maintenant utiliser l’environnement de développement eclipse ([[http:// | ||
+ | |||
+ | Comme " | ||
+ | espace de travail (c’est là que eclipse stocke ses informations de configuration). | ||
+ | |||
+ | Créer un nouveau projet à partir d’un fichier ant (cf. menu file). | ||
+ | Modifier les propriétés du nouveau projet (clic droit sur le projet). Dans | ||
+ | "Java compiler" | ||
+ | chemins vérifier que les répertoires des sources et des binaires sont corrects. | ||
+ | |||
+ | Dans les propriétés du paquetage '' | ||
+ | la Javadoc. | ||
+ | |||
+ | Pour lancer une tâche ant, utiliser le menu de droite. | ||
+ | Vous pouvez maintenant | ||
+ | </ | ||
+ | |||
+ | ===== Automatiser le processus avec Maven ===== | ||
+ | Tout ce processus peut être automatisé avec Maven. Maven sera présenté plus en détail en cours. | ||
+ | Nous allons commencer par un utilisation minimale. | ||
+ | * Configurer le proxy http : [[maven: | ||
+ | * Création d'un projet générique Java : [[maven: | ||
+ | |||
+ | Mettez en place l' | ||
+ | |||
+ | ===== Utilisation de l’environnement Intellij Idea ===== | ||
+ | Dans le cadre des travaux pratique nous utilisons la version Ultimate d' | ||
+ | Demandez une licence avec votre adresse email UTLN ici : https:// | ||
+ | |||
+ | / | ||
+ | |||
+ | Ouvrez et modifiez l' | ||
+ | |||
+ | ===== Les concepts de base de Java ===== | ||
+ | |||
+ | ==== Création et instanciation d’une classe ==== | ||
+ | |||
+ | Créer une classe Java exécutable nommée '' | ||
+ | ' | ||
+ | |||
+ | Créer une classe '' | ||
+ | personne ayant un nom, un prénom, un âge et un salaire. Créer les accesseurs | ||
+ | correspondants à ces attributs (l'IDE peut le faire automatiquement). | ||
+ | Vous vérifierez qu’un salaire ne peut pas être | ||
+ | négatif. Instancier une personne '' | ||
+ | |||
+ | Ajouter des constructeurs dans la classe Personne qui initialisent le nom et le | ||
+ | prénom et éventuellement l’âge et la profession. Modifier cette classe pour que | ||
+ | le nom et le prénom ne puissent plus être modifiés après l’instanciation. | ||
+ | |||
+ | Ajouter un attribut qui indique l’année de naissance et les accesseurs associés. Modifier la méthode que retourne l’âge. L’année courante s’obtient avec | ||
+ | '' | ||
+ | |||
+ | Ajouter une méthode '' | ||
+ | inférieur à l’instance courante. Créer une deuxième personne '' | ||
+ | année que '' | ||
+ | salaires de '' | ||
+ | |||
+ | Ajouter une méthode '' | ||
+ | |||
+ | Attention '' | ||
+ | Personne)'' | ||
+ | |||
+ | Ajouter un attribut de classe '' | ||
+ | personnes et un accesseur. Modifier les méthodes nécessaires pour le salaire | ||
+ | total soit maintenu à jour automatiquement. | ||
+ | |||
+ | Afficher le salaire total après la création de chaque personne. | ||
+ | |||
+ | ==== Les méthodes de base ==== | ||
+ | |||
+ | === toString() === | ||
+ | Afficher directement l’objet '' | ||
+ | '' | ||
+ | qui décrit la personne. Exécuter '' | ||
+ | |||
+ | === equals() === | ||
+ | On souhaite considérer que deux personnes sont " | ||
+ | que '' | ||
+ | |||
+ | ==== Définition de classes locales ==== | ||
+ | Pour représenter le fait qu’une Personne à un cerveau ajouter une définition de | ||
+ | la Classe '' | ||
+ | un attribut '' | ||
+ | de sa création. Compiler et exécuter '' | ||
+ | les classes qui ont été compilées. Essayer de créer une instance de '' | ||
+ | directement dans la classe '' | ||
+ | |||
+ | ===== Pour finir... ===== | ||
+ | Vous allez maintenant créer une classe '' | ||
+ | des entreprises qui comportent au maximun | ||
+ | |||
+ | Vous ajouterez les méthodes pour créer une entreprise, ajouter des employés | ||
+ | et afficher le nombre d’employés, | ||
+ | utilisant le '' | ||
+ | |||
+ | Les entreprises doivent appartenir à l’une des trois catégories suivantes: | ||
+ | '' | ||
+ | représenter cela en utilisant un type '' | ||
+ | '' | ||
+ | |||
+ | Ajouter une méthode '' | ||
+ | d’une entreprise en majuscule. | ||
+ | |||
+ | Modifier votre classe '' | ||
+ | et le type d’une entreprise, puis la liste des personnes qui la compose. | ||
+ | |||
+ | java Test maBoite PME Pierre Durand 1950 2000 Paul Dupond 1960 3000 Marie Martin 1975 2500 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | {{tag> | ||
---- struct data ---- | ---- struct data ---- | ||
+ | metadata.level | ||
+ | metadata.Type | ||
+ | metadata.Nom | ||
+ | metadata.Enseignements : | ||
+ | metadata.Promotions | ||
+ | metadata.Technologies : Java, ant, javadoc, eclipse, jar, Maven, intellij idea | ||
+ | metadata.Thèmes | ||
+ | metadata.Description : | ||
---- | ---- | ||