Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf



Documents pareils
Programmer en JAVA. par Tama

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

INITIATION AU LANGAGE JAVA

Plan du cours. Historique du langage Nouveautés de Java 7

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

as Architecture des Systèmes d Information

TP1 : Initiation à Java et Eclipse

Une introduction à Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Synchro et Threads Java TM

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle CISII,

INF 321 : mémento de la syntaxe de Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Remote Method Invocation Les classes implémentant Serializable

Initiation à JAVA et à la programmation objet.

Cours 1: Java et les objets

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Langage Java. Classe de première SI

Introduction : les processus. Introduction : les threads. Plan

Généralités sur le Langage Java et éléments syntaxiques.

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Java c est quoi? Java pourquoi?

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

Premiers Pas en Programmation Objet : les Classes et les Objets

Introduction au langage C

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Calcul Parallèle. Cours 5 - JAVA RMI

La technologie Java Card TM

Un ordonnanceur stupide

Tp 1 correction. Structures de données (IF2)

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Programmation Orientée Objet application au langage Java Version Novembre 2007

Java Licence Professionnelle CISII,

Programmation Orientée Objets Le Langage JAVA

Traitement de données

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Chapitre 10. Les interfaces Comparable et Comparator 1

Corrigé des exercices sur les références

TP1. Outils Java Eléments de correction

La carte à puce. Jean-Philippe Babau

ACTIVITÉ DE PROGRAMMATION

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Programmation en Java IUT GEII (MC-II1) 1

Java - la plateforme

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

TP1 : Initiation à Java et Eclipse

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

La JVM. La machine virtuelle Java. La JVM. La JVM

Environnements de développement (intégrés)

Structurer ses données : les tableaux. Introduction à la programmation

1. Langage de programmation Java

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Corrigés des premiers exercices sur les classes

Threads. Threads. USTL routier 1

RMI le langage Java XII-1 JMF

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

COMPARAISONDESLANGAGESC, C++, JAVA ET

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Héritage presque multiple en Java (1/2)

Chapitre 2. Classes et objets

UE C avancé cours 1: introduction et révisions

Développement Logiciel

Remote Method Invocation (RMI)

Projet de programmation (IK3) : TP n 1 Correction

Introduction au langage Java

Notions fondamentales du langage C# Version 1.0

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Initiation à la Programmation Java

Bases Java - Eclipse / Netbeans

Auto-évaluation Programmation en Java

Support de cours et TD Programmation Orientée Objet

Dis papa, c est quoi un bus logiciel réparti?

CIE303 - Programmation Orientée Objet en Java

Introduction à la programmation concurrente

Utilisation d objets : String et ArrayList

Introduction. Introduction au langage Java. Un livre de Wikilivres.

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Programmation Orientée Objet

Apprendre Java en 154 minutes

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java


Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

TD3: tableaux avancées, première classe et chaînes

Objets et Programmation. origine des langages orientés-objet

Programmation Orientée Objet Java

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Remote Method Invocation en Java (RMI)

Applet pour visualiser les variables «automate» notifiées

Java Licence professionnelle CISII,

Transcription:

Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014

Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28

Histoire et motivations Langage développé par James Gosling chez Sun Microsystems à partir de 1990 Pour des environnements embarqués : appareils spécifiques ("Appliances") applications Web Contraintes : indépendant du matériel sécurité 3/28

La machine virtuelle Java Le langage Java utilise une machine virtuelle : le compilateur produit un bytecode ce code est indépendant de l architecture matérielle sur laquelle il est exécuté la machine virtuelle interprète ce bytecode et le transforme en code machine natif à la volée (Just in time compilation) 4/28

Machines virtuelles Java HotSpot (Oracle JRE/JDK) Dalvik (Google/Android) Jazelle extension du jeu d instruction de certains processeurs ARMv5 pour exécution directe de byte-code java. ThumbEE généralisation de Jazelle sur processeurs ARMv7. Pas spécifique de Java (supporte aussi C#, Perl, Python) 5/28

Cycle de développement Editeur de texte Compilation Exécution Hello, World Hello.java javac Hello.class java 6/28

Premier programme java /** ** Premier programme java **/ public class Hello { public static void main(string argv[]) { System.out.println("Hello, World!"); 7/28

Classes et objets Classe définit un type de données, et des fonctions (méthodes) qui le manipulent. Objet une instance de classe : une variable du type définit par la classe et ses méthodes. Héritage permet de créer des classes qui reprennent les données de la classe parente. Interface définition des prototypes des méthodes d une classe sans préciser leur implémentation. 8/28

Gestion de la mémoire Java simplifie la gestion de la mémoire pas de pointeurs : les références aux objets sont implicites, copies automatiques lorsque nécessaire. pas besoin de détruire ou libérer explicitement les objets : ceux qui ne sont plus utilisés sont recyclés par le processus ramasse-miettes 9/28

Classes standard Environnement de classes standardisées et prédéfinies : types étendus (java.lang) entrées/sorties (java.io) réseau (java.net)... Documentation standardisée : javadoc Documentation des classes et API standard : http://docs.oracle.com/javase/7/docs/api/ 10/28

Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 11/28

Variables Quatre catégories de variables : variables d instance : données d un objet variables de classe : variable globale d une classe, existe en un seul exemplaire pour tous les objets de la classe. déclarée dans une classe avec static. final déclare une variable de classe constante. variables locales : déclarées dans le corps d une méthode, locales à la méthode qui les déclare. paramètres : pseudo-variables utilisées pour décrire les paramètres d une méthode 12/28

Types de données de base byte 1 octet ( 128.. + 127) short entiers sur 16 bits ( 32768.. + 32767) int entiers sur 32 bits long entiers sur 64 bits float nombres réels sur 32 bits double nombre réels sur 64 bits boolean variable binaire (true ou false) char caractère Unicode Il existe aussi des classes pour les types de base (Number et String). 13/28

Tableaux Collections d objets dont la taille est fixée à la création. int[] anarray; anarray = new int[10]; int[] anotherarray = {100, 200, 300, 400; anarray[0] = anotherarray[0]; 14/28

Opérateurs opérateur précédence postfix expr ++ expr unaire ++expr expr +expr -expr! multiplicatif * / % additif + - décalages << >> >>> relations < > <= >= instanceof égalités ==!= et bit à bit & ou exclusif bit à bit ˆ ou inclusif bit à bit et logique && ou logique ternaire? : affectation = += -= *= /= %= &= ˆ= = <<= >>= >>>= 15/28

Instructions if (expr) {... if (expr) {... else {... switch case while (expr) {... do {... while (expr) for (initialisation; terminaison; incrément) {... break 16/28

Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 17/28

Déclaration de classes class MaClasse { // variables, constructeurs, méthodes... Classe dérivée : class MaClasse extends MaSuperClasse { // variables, constructeurs, méthodes... Implémentation d une interface : class MaClasse implements MonInterface { // variables, constructeurs, méthodes... 18/28

Constructeurs Le constructeur porte le nom de la classe, ne retourne rien. Appelé par l opérateur new. Exemple : public class Cube { float dimension; String couleur;.. public Cube(float d, String c) { dimension = d; couleur = c; Cube c = new Cube(1.0, "rouge"); 19/28

Objets Créer les objets avec l opérateur new Appel des méthodes de l objet avec. public class Cube { float dimension;... public float volume() { return dimension*dimension*dimension; Cube c = new Cube(0.75, "vert"); System.out.println("le volume de c est " + c.volume + "m3"); 20/28

Méthodes et variables statiques Méthodes et variables qui ne sont pas attachés à une instance particulière utilisé pour le «main» d une classe variables ou constantes globales class MonAppli { public static void main(string argv[]) {... public static int MAX_OBJ = 100; 21/28

Exceptions Méthode de traitement des erreurs. try { code catch (ExceptionType1 nom1) {... traitement exception 1 catch (ExceptionType2 nom2) {... traitement exception 2 En Java il est interdit d ignorer une exception! 22/28

Génération d une exception Opérateur throw Classe Exception Exemple : try {... code if (erreur) throw new MyException("bug de logique");... code catch (MyNewException e) { writeln("exception: " + e); 23/28

Synchronisation Moniteurs mot clé synchronized dans la déclaration d une méthode. condition anonyme : wait() signal sur une condition : notify() ou notifyall(). public synchronized void P(Semaphore s) { while (s.valeur == 0) { try { wait(); catch (InterruptedException e) { s.valeur--; 24/28

Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 25/28

Packages Mécanisme pour grouper un ensemble de classes et les rendre accessibles aux applications. Un environnement Java (JRE) fourni un ensemble de packages standard. Exemples : System fonctions système, en particulier entrées/sorties java.lang.math fonctions mathématiques java.util.random nombre aléatoires javax.swig boite à outils pour applications graphiques Utilisation : import java.util.random; 26/28

Exemple: philosophes et spaghettis public synchronized void arriver(int i) { philo[i].etat = DEMANDEE; while (! accessible(i)) { try { wait(); catch (InterruptedException e) { philo[i].etat = OCCUPEE; public synchronized void quitter(int i) { philo[i].etat = LIBRE; notifyall(); 27/28

Questions?