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