Langages avec des objets : JAVA

Documents pareils
Java Licence Professionnelle CISII,

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmer en JAVA. par Tama

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

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

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

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

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

TP, première séquence d exercices.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

INF 321 : mémento de la syntaxe de Java

as Architecture des Systèmes d Information

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programme Compte bancaire (code)

Cours 1: Java et les objets


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

Java Licence Professionnelle CISII,

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

Les bases de l informatique et de la programmation. École polytechnique

Une introduction à Java

Utilisation d objets : String et ArrayList

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

Introduction au langage C

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

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Premiers Pas en Programmation Objet : les Classes et les Objets

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

TP1 : Initiation à Java et Eclipse

PROGRAMMATION PAR OBJETS

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

Cours d initiation à la programmation en C++ Johann Cuenin

Chapitre 10. Les interfaces Comparable et Comparator 1

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

1. Langage de programmation Java

Programmation en Java IUT GEII (MC-II1) 1

Notions fondamentales du langage C# Version 1.0

Corrigé des exercices sur les références

Flux de données Lecture/Ecriture Fichiers

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Langage Java. Classe de première SI

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

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

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

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

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

Solutions du chapitre 4

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

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

Principes des langages de programmation INF 321. Eric Goubault

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

ACTIVITÉ DE PROGRAMMATION

UE Programmation Impérative Licence 2ème Année

Cours d Algorithmique et de Langage C v 3.0

INITIATION AU LANGAGE JAVA

Programmation Orientée Objets Le Langage JAVA

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Package Java.util Classe générique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Exercices sur les interfaces

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Claude Delannoy. 3 e édition C++

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

COMPARAISONDESLANGAGESC, C++, JAVA ET

Algorithmique et Programmation, IMA

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Introduction au langage Java

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

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

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Langage à objets : JAVA (1)

ALGORITHMIQUE ET PROGRAMMATION En C

Programmation avec des objets : Cours 7. Menu du jour

2. Comprendre les définitions de classes

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

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Algorithmique et programmation : les bases (VBA) Corrigé

Programmation par les Objets en Java

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Support de cours et TD Programmation Orientée Objet

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Présentation du langage et premières fonctions

Programmation en langage C

Chapitre I Notions de base et outils de travail

Les processus légers : threads. Système L3, /31

Bases de programmation. Cours 5. Structurer les données

Conventions d écriture et outils de mise au point

Projet de programmation (IK3) : TP n 1 Correction

Informatique / Programmation

Utiliser Java sans BlueJ

Rappels Entrées -Sorties

Programmation Objet I

Java c est quoi? Java pourquoi?

Transcription:

1 Langages avec des objets : JAVA Robert Cori Buts de ce cours: 1. Comprendre les principes de la programmation 2. Connaître les développements modernes de logiciels et avoir une idée de leur fonctionnement 3. Maîtriser l écriture de programme. 4. Découvrir quelques problèmes actuels de l informatique.

2 Vos enseignants Jean-Claude Ville Groupe 1 : mardi 9h 30 -> 12h 20 Groupe 2 : lundi 15h30 -> 18h 30

3 Vos enseignants Anne Vialard. Groupe 3 : Jeudi 14h -> 16h 50 David Auber Groupe 4 : Vendredi 14h -> 16h 50

4 Menu du Jour (cours) 1. Organisation de l enseignement. 2. Introduction à Java. Généralités: mise en œuvre Classes Constantes Variables et Types Affectations Structures de contrôle Boucles Fonctions Tableaux Chaînes de caractères (String)

5 Organisation Contenu du cours 1. Mise à niveau Java Ensuite: 2. Classes 3. Modularité 4. Types abstraits 5. Héritage

6 Informations Pratiques TDs Devoir Surveillé Epreuve écrite Rattrapage en jury

7 A propos de Java Un langage utilisé pour le WWW Une version simplifiée de C++ Langage avec des objets (object oriented) Avantages: typé, relativement simple, proche de C, assez répandu. Inconvénients: instructions parfois lourdes, difficultés de la programmation avec des objets.

8 Premières caractéristiques de Java Un programme est constitué de classes. Une classe contient des constantes, des variables, des fonctions... Premiers programmes : une seule classe. La fonction qui a pour nom main dans la classe Exclasse est exécutée lors de la commande java Exclasse

9 Premier programme Programme qui affiche des valeurs à l écran : public class Prog1 { //On compare pi et 22/7 static final double u = 22./7; public static void main (String[] arg){ } } System.out.println(u); System.out.println(Math.PI);

10 Compilation, Interprétation A mettre dans un fichier Prog1.java, ensuite pour compiler javac NomClasse.java Enfin pour exécuter (interpréter le byte-code) java NomClasse % javac Prog1.java % java Prog1 3.142857142857143 3.141592653589793 %

11 Constantes On déclare les constantes dans une classe par: final static suivi du type, du nom et de la valeur avec = comme pour une affectation Ne jamais mettre des valeurs constantes au milieu d un programme Exemple : final static int n = 100; final static float taux = 0.30;

12 Variables, Types Langage fortement typé: toute variable a un type qu il faut déclarer Un type définit des valeurs et des opérations que l on peut effectuer sur celles-ci.

13 Les types Un type désigne un ensemble de valeurs et un ensemble d opérations sur ces valeurs Exemple, les types primitifs: entiers, flottants, booléens, caractères Le type tableau de type typ est un nouveau type En Java les autres types sont définis par des classes: (objets et méthodes à voir plus tard)

14 Types primitifs 1. Les octets (8 bits) byte 2. Les entiers courts (16 bits) short 3. Les entiers (32 bits) int 4. Les entiers longs (64 bits) long 5. Les réels (32 bits) float 6. Les réels longs (64 bits) double 7. Les caractères (16 bits) char 8. Les booléens boolean: constantes : true, false.

15 Affectation x = E; L expression E est évaluée La variable x est affectée de la valeur obtenue On peut convertir implicitement un entier int en un entier long ou un short en int, de même pour les float en double. On peut aussi convertir un entier en float ou en double short i = 23; int j = i; long u = j; float u = (float) i; int k = (int) u;

16 Incrémentation i++; ++i; x = i++; x = ++i;

17 Expressions arithmétiques Variables, constantes, opérations mathématiques Calculer la différence des surfaces d un cercle de rayon 2.75 et d un carré de coté 5: int a = 5; float r = (float) 2.75; double pi = Math.PI; float s = pi * r * r - a * a; System.out.println(s); Calculer le reste de la division de 3125 par 713: int a = 3125 % 713; Afficher le résultat : System.out.prinln(a);

18 Expressions logiques Expression évaluées à true ou false x > 8 ; x == 7; x!= 9; Attention à la différence entre = affectation, et == comparaison

19 Connecteurs logiques &&, signifie et, signifie ou et! signifie non. Ordre de calcul évite les erreurs (a > 8) && (b <16);! (a == 9); c!= 0; (a > 8) && (b/c == 1); (b/c == 1) (a == 8); boolean res = true;

20 Instructions Conditionnelles if (E) I if (E) I else J if (E) {I1 I2... IP} else {J1 J2... Jq} static int absdiff (int a, int b){ if (a > b) return a - b; else return b - a; }

21 Boucle while while (E) I while (E) { } I1 I2...Ip static int diventiere (int a, int b){ int r = 0; while (a >= 0) { a = a - b; r++; } return r; }

22 Boucle for for (Init E; Incr) I Equivalent à : Init while(e) { I Incr }

23 Itérations, Boucles: Exemple class SommeCube { static final int n = 12; } public static void main (String[] int s = 0; for (int i = 0; i < n; i++) s = s + i * i * i; System.out.println (s); } arg){

24 Fonctions Une fonction a des paramètres et obtient un résultat Le type de la fonction est donné par le type de son résultat Déclarer une fonction, par son type et le type des paramètres (signature) Le résultat est rendu à l appelant par return E static int sommemod2 (int a, int b){ return (a + b) % 2 ; } Le calcul d une fonction est appelé par nom(par1, par2,.. park) int z = sommemod2 (x,y);

25 Les tableaux Un tableau est un ensemble de variables de même type Se déclare par typ[] tab; ou typ tab[]; De préférence typ[] tab; Les éléments sont des variables de type typ Les noms des variables sont tab[0], tab[1],... tab[p-1] Le nombre d éléments du tableau tab est donné par tab.length

26 Déclaration et initialisation d un tableau Pour désigner la variable alpha formellement comme un tableau d entiers int[] alpha; Pour réserver de place en mémoire pour la variable alpha comme un tableau composé de n entiers on peut faire les deux en même temps alpha = new int[n];

27 Exemple: int n = 7; int[] p1 = new int[n]; for (i = 0; i < n ; ++i) if (i < 3) p1[i] = 0; else p1[i] = 1; ou de manière équivalente: int[] p1 = {0, 0, 0, 1, 1, 1, 1}; System.out.println(); p1.length;

28 Fonctions sur les tableaux Une fonction peut avoir pour résultat un tableau : static int[] tabconstant (int a, int n) { int[] res = new int[n]; for (int i = 0 ; i < n ; ++i) res[i] = a; return res; }

29 Chaînes de caractères Se déclare par: String u; Initialisée par: u = Bonjour tout le monde ; Ne peut pas être modifiée On ne peut pas remplacer un caractère par un autre. Ceci est possible avec StringBuffer

30 Chaînes de caractères : fonctions utiles int l = u.length(); Donne le nombre de caractères de la chaîne u.compareto(v); Donne pour résultat 0 si les deux chaînes sont égales, négatif si u vient avant v dans l ordre lexicographique, positif sinon

31 On imprime une chaîne par Chaînes de caractères (fin) String u = Universite Bordeaux 1 ; System.out.println(u); D ailleurs tous les arguments de System.out.println sont transformés automatiquement en chaînes de caractères La concaténation se réalise par + String x = Bonjour ; String y = les amis ; String z = x + y; L affectation String x = bonjour ; String y = x; ne recopie pas bonjour mais effectue une référence sur cette chaîne.

32 L opération + L opération + désigne à la fois l addition (entiers, flottants) et la concaténation de chaînes class Plus{ public static void main(string[] arg){ String x = " Bonjour ", y = "les amis "; String z = x + y; x = "Au revoir"; System.out.println(z); System.out.println(x); int a = 3, b = 5; System.out.println(a + z + b); System.out.println(a + b + z); System.out.println(z + a + b); } }

33 java Plus Bonjour les amis Au revoir 3 Bonjour les amis 5 8 Bonjour les amis Bonjour les amis 35

34 Les arguments de main C est la variable déclarée dans main(string[] arg) Ainsi arg est un tableau de chaînes de caractères. A l exécution de java Nomclasse abc xyz Le nombre d arguments est arg.length Le premier argument est arg[0] le deuxième arg[1] etc.. Ces arguments sont de type String Il faut parfois les transformer en des nombres entiers par Integer.parseInt

35 Exemple d entrées avec des arguments pour main public class Additionner{ public static void main (String[] arg){ int a = Integer.parseInt(arg[0]); int b = Integer.parseInt(arg[1]); int res = a + b; System.out.println (c); } }