INF 103 – Langage JAVA Contrôle 4 janvier 2017
Transcription
INF 103 – Langage JAVA Contrôle 4 janvier 2017
INF103–LangageJAVA Contrôle 4janvier2017 Nometprénom:……………………….…………………………………………………………. Groupe:………….. Écrirelesréponsesdirectementsurlesfeuillesdusujetdanslescasesprévuesàceteffet,la tailledescasesderéponsen’estpasforcémentliéeàlatailledesréponses. Lebarèmeestsur20pointsmaislanotecomptepour10pointsdanslanotefinaledeJava. Lebarèmeestdonnéàtitreindicatifetpourraêtrerevuaumomentdelacorrectionsiles correcteursl’estimentnécessaire. Lesujetcomporte11pages. Pasdedocumentsautorisés,téléphoneséteints. Desréponsesillisiblesneserontpascorrigées. 1/11 1. (2 points) Qu’est-ce que l’encapsulation des données? Citer trois raisons qui justifient l’encapsulationdesdonnées? Voirlecourssurl’encapsulation. 2/11 2. (2 points) Qu’appelle-t-on une facette d’un objet ? Comment les interfaces de programmationpermettentdenemontrerqu’unefacetted’unobjet? VoirlecourssurlesInterfacesdeprogrammation. 3/11 3. (3points)Qu’est-cequ’unlangageO.O.àliaisondynamique?Ainsiqu’unlangageO.O.à liaisonstatique? VoirlecoursHéritagedeclasses. 4/11 4. (2points)CitertroistypesdefluxdesortieetnommerlestypesJavaassociésàcesflux? VoirlecoursEntrées-sorties(I/O). 5/11 5. (2points)Qu’appelle-t-onlesclassesCollectionsetleursinterfacesenJava?Citercelles quevousconnaissez. VoirlecoursComplémentsindispensables. 6/11 6. (1points)Sil’ondésireobtenirlenombree(labasedeslogarithmesnaturels),ondoit écrireMath.E.Dupointdevuejava,commentappelle-t-onE?Quelleestsanature? Math.E est une variable de classe déclarée avec le mot clé static et avec le mot clé public.Elles’écritenmettantlenomdelaclasse(MathavecMmajuscule)suividunom de la variable. Elle est probablement déclarée final car elle est accessible à toutes les classes. 7. (1points)QuelleestladifférenceentreunfloatetunFloat ? Le premier est un type scalaire (un type primitif) tandis que le deuxième est une classe englobantunfloatetproposantdesméthodesspécifiques. 7/11 8. (2 points) On se donne une classe de base Movie possédant deux attributs de types StringetFile,leconstructeurassociéainsiquetroisméthodespermettantdejouer lefilmcontenudanslefichierdécritparl’attributdetypeFileselonsontypequipeut êtreavioumkvoump4.Cestroistypessontdesnormesd’encodagedefilms. Bienentendu,silefichierdécritparl’attributdetypeFileauncertaintypedefilms, par exemple mp4, et que l’on utilise un type de player du mauvais type, par exemple mkvPlayer,celanefonctionnerapas. Celadonne: public class Movie { private final String title ; private final File content ; public Movie(String title, File content) { this.title = title ; this.content = content ; } public final void aviPlayer() throws IOException { … } public final void mkvPlayer() throws IOException { … } public final void mp4Player() throws IOException { … } } Ondécidededéclarer3sous-classesdeMoviecorrespondantauxtroistypesdefilms: AviMovie,MkvMovieetMp4Movie. 8/11 Déclarercessous-classesavecleursconstructeurs. public final class AviMovie extends Movie { public AviMovie(String title, File content) { super(title,content) ; } } public final class MkvMovieextends Movie { public MkvMovie(String title, File content) { super(title,content) ; } } public final class AviMovie extends Movie { public MkvMovie(String title, File content) { super(title,content) ; } } 9/11 9. (2points)Ondésirequechacunedestroisclassesfillesaituneméthodeplayer()qui jouelefilmselonsontype.Quellessontlesmodificationsàapporteràcesquatreclasses pourimplémentercela. DanslaclasseMovie : -onnemodifierien DanslaclasseAviMovie : public final void player() throws IOException { aviPlayer() ; } DanslaclasseMkvMovie : public final void player() throws IOException { mkvPlayer() ; } DanslaclasseMp4Movie : public final void player() throws IOException { mp4Player() ; } Onn’oublierapasdedéclarerlesexceptionsavecthrows. 10/11 10. (3points)OndésireavoirunetablemoviesTabledetypeArrayList<Movie>qui peut contenir des films des trois types AviMovie, MkvMovie et Mp4Movie. Et on désirepouvoirexécuterl’instruction: for (Movie movie : moviesTable) movie.play() ; Quellessontlesmodificationsàapporterauxquatreclasses? DanslaclasseMovie : -laclassedevientabstraite: public abstract class Movie { … } -onydéclarelaméthodeabstraiteplayer : public abstract void player() throws IO Exception ; DanslaclasseAviMovie : -onnemodifierien DanslaclasseMkvMovie : -onnemodifierien DanslaclasseMp4Movie : -onnemodifierien Onn’oublierapasdedéclarerl’exceptionavecthrows. Ilyaeuuneambiguitécarl'énoncéétaiterroné(playaulieudeplayer)maislescorrecteurs enonttenucompte. FINDUSUJET 11/11