Université de Bourgogne - UFR Sciences et Techniques - Programmation objet et Internet - LPSIL

Documents pareils
Corrigé des exercices sur les références

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

Programme Compte bancaire (code)

Projet de programmation (IK3) : TP n 1 Correction

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

Java Licence Professionnelle CISII,

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

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

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

TD/TP PAC - Programmation n 3

Premiers Pas en Programmation Objet : les Classes et les Objets

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

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

TP1 : Initiation à Java et Eclipse

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

Programmer en JAVA. par Tama

Chapitre 10. Les interfaces Comparable et Comparator 1

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

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

Programmation par les Objets en Java

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

TD/TP PAC - Programmation n 3

Langage Java. Classe de première SI

Une introduction à Java

Cours 1: Java et les objets

Package Java.util Classe générique

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

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 )

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

as Architecture des Systèmes d Information

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

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

Corrigés des premiers exercices sur les classes

Utilisation d objets : String et ArrayList

Auto-évaluation Programmation en Java

Exercices sur les interfaces

Java Licence professionnelle CISII,

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

INITIATION AU LANGAGE JAVA

Initiation à JAVA et à la programmation objet.

Remote Method Invocation (RMI)

Synchro et Threads Java TM

Programmation en Java IUT GEII (MC-II1) 1

Programmation Objet I

Programmation avec des objets : Cours 7. Menu du jour

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

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

PROGRAMMATION PAR OBJETS

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

Bases Java - Eclipse / Netbeans

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Threads. Threads. USTL routier 1

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TP, première séquence d exercices.

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

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

Support de cours et TD Programmation Orientée Objet

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation C. Apprendre à développer des programmes simples dans le langage C

Classe Interne, Anonyme & Enumération

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Latitude N Longitude E Altitude 376 m RÉSUMÉ MENSUEL DU TEMPS DE JANVIER 2014

RMI le langage Java XII-1 JMF

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

TD2 Programmation concurrentielle

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

Remote Method Invocation Les classes implémentant Serializable

Java c est quoi? Java pourquoi?

Java Licence Professionnelle CISII,

Programmation système I Les entrées/sorties

Programmation Par Objets

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Chapitre VI- La validation de la composition.

Java DataBaseConnectivity

Programmation Objet Java Correction

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

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)

4. Groupement d objets

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

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

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

Un ordonnanceur stupide

Design patterns. Design patterns - définition. Design patterns - avantages

Programmation Orientée Objet Java

Utiliser Java sans BlueJ

Compression de Données - Algorithme de Huffman Document de Conception

F. Barthélemy. 17 mai 2005

Développement Logiciel

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

Création d objet imbriqué sous PowerShell.

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

Gestion distribuée (par sockets) de banque en Java

LOG4430 : Architecture logicielle et conception avancée

Transcription:

Identifiant : Contrôle terminal Programmation objet et Internet Vous devez répondre dans les cadres aux questions posées. Documents de cours et notes personnelles autorisés. Téléphones portables, ordinateurs et calculatrices interdits. La classe Latitude représente une latitude géographique exprimée en degrés sous forme décimale, c est à dire sous la forme d une valeur de type double. Par convention, dans le cadre de cet exercice, une latitude Nord est représentée par une valeur positive de la variable d instance lat, et une latitude sud par une valeur négative. Par exemple la latitude 47.3325 Nord est représentée par 47.3325 alors que la latitude 18.568 Sud est représentée par -18.568. Vous devez compléter la classe Latitude ci-dessous de manière à la doter : D un deuxième constructeur acceptant deux paramètres : une valeur x de type double représentant la valeur absolue de la latitude et une valeur ns de type char qui indique sa direction avec la convention N pour Nord et S pour Sud. Ce constructeur devra lever une exception BadValue si le caractère passé en paramètre n est ni N ni S. Des méthodes getabs, getnord et tostring. public class Latitude private double lat; public Latitude(double x)lat=x; Ceci est la seule variable d instance de la classe. Ceci est le premier constructeur. Placez le deuxième dans l espace vide en dessous. public double getabs()return Math.abs(lat); public boolean getnord() Retourne la valeur absolue de la latitude. Retourne true pour une latitude Nord, false sinon. Retourne une description de la forme «Latitude 45.289 Nord» ou «Latitude 15.223 Sud». Contrôle terminal - 2013 - page 1 sur 7

La classe Latitude est elle modifiable? Justifiez brièvement votre réponse. Dans la suite, on suppose l existence d une classe Longitude représentant une longitude géographique, avec les mêmes conventions de représentation et les mêmes méthodes et constructeurs que pour la classe Latitude sauf que les directions sont Est et Ouest au lieu de Nord et Sud. La classe GPSpoint représente un point GPS constitué d une latitude et d une longitude. Complétez ci-dessous la définition de classe GPSpoint. public class GPSpoint private Latitude latitude; private Longitude longitude; public GPSpoint(Latitude lat, Longitude lon) public GPSpoint(double lat, double lon) public void setlat(latitude newlat) public void setlon(longitude newlon) Retourne une description de la forme «Latitude 45.289 Nord, Longitude 15.25 degrés Ouest». Réutilisez au maximum le code existant. Contrôle terminal - 2013 - page 2 sur 7

Un point d intérêt est un point GPS ayant en plus un descriptif. Complétez dans le cadre ci dessous la définition de la classe IntPoint, dérivée de GPSpoint, qui représente un point d intérêt. public class public IntPoint(double lat, double lon, String desc) public IntPoint(Latitude lat, Longitude lon, String desc) Retourne une description incluant la latitude, la longitude et le descriptif. Réutilisez le tostring de la classe GPSpoint. On souhaiterait disposer d une méthode static retournant le nombre de d instances de Int- Point créées depuis le début de l exécution du programme. Expliquez comment faire. Contrôle terminal - 2013 - page 3 sur 7

Définissez une méthode main qui crée un point d intérêt de latitude 57.26 Nord et de longitude 5.32 Sud avec comme descriptif «Moulinsard», puis affiche ce point d intérêt. Le constructeur à deux paramètres de la classe IntPoint doit être utilisé. Vous devez prévoir la capture d une éventuelle exception qui serait levée lors de la création de la latitude ou de la longitude nécessaires pour construire le point d intérêt. Si une telle exception se produit, prévoyez l affichage d un message d erreur. Si on crée une instance de ArrayList<GPSpoint>, sera t-il possible de mettre des instances de IntPoint dans cette liste? Justifiez brièvement votre réponse. La classe Itineraire représente un itinéraire constitué d une liste d instances de GPSpoint. Cette liste est stockée dans une variable d instance de type ArrayList<GPSpoint>. La classe Itineraire doit par ailleurs comporter : Un constructeur créant un itinéraire constitué d une liste vide de points GPS. Une méthode add permettant d ajouter un point GPS à l itinéraire. Une méthode abstraite gettype retournant une chaîne de caractères décrivant le type de l itinéraire courant. Ce type est définit dans une classe dérivée de Itineraire. Une méthode tostring retournant une description de l itinéraire incluant la liste des points GPS dont il est constitué et son type (obtenu par appel de la méthode gettype). Complétez la définition de cette classe dans le cadre page suivante. Contrôle terminal - 2013 - page 4 sur 7

class Itineraire public Itineraire() public void add(gpspoint p) abstract String gettype(); Réalisez une classe ItiVoiture représentant un cas particulier d itinéraire (donc dérivant de la classe Itineraire) à parcourir en voiture. Cette classe doit être concrète. Il doit donc être possible de créer des instances de ItiVoiture. Mettez un constructeur dans cette classe si et seulement si c est nécessaire. public class ItiVoiture extends Itineraire Contrôle terminal - 2013 - page 5 sur 7

On imagine qu il y a plusieurs classes dérivées de Itineraire telles que ItinérairePedestre, ItineraireVelo, ItineraireMoto etc. On souhaiterait que certaines de ces classes appartiennent à un type particulier nommé ItiVAM spécifique aux itinéraires pour véhicules à moteur. On souhaiterait que toute les classes de ce type disposent obligatoirement d une méthode double getconsommation() retournant la quantité de carburant consommée par la pratique des itinéraires concernés. Proposez une solution basée sur la notion d interface et expliquez comment la mettre en œuvre. On souhaite réaliser une méthode static acceptant en paramètre un tableau d instances de String et retournant la plus petite des chaînes du tableau au sens de l ordre lexicographique standard du langage Java. La solution ci dessous a été proposée par un étudiant mais comporte trois erreurs. Entourez les parties erronées et expliquez comment les corriger. public static String min(string tab) String mini = tab[0]; for(int i=1; i<tab.length; i++) if(tab[i] < mini) tab[i] = mini; return mini; Contrôle terminal - 2013 - page 6 sur 7

Si, dans la méthode min corrigée, on remplace le type String (partout où il apparaît) par le type Latitude, le compilateur acceptera t-il de compiler cette nouvelle méthode ou bien affichera t-il un message d'erreur? Dans le cas où un message d'erreur s'affiche à la compilation, préciser ce que dira ce message et comment remédier au problème. Dans une classe Main, il y a les deux méthodes ci-dessous. static public void main(string[] argv) String[] tab=new String[]"Picsou","Flairsou","Gripsous"; test(tab); public static void test(string[] t) t[0]=t[0]+t[1]; System.out.println("Que peut il y avoir dans la pile et le tas?"); Représentez graphiquement les variables situées dans la pile, les objets situés dans le tas et les liens entre ces variables et ces objets immédiatement après l'exécution de la ligne t[0]=t[0]+t[1];. Contrôle terminal - 2013 - page 7 sur 7