DOC

Examen Java

By Melanie Elliott,2014-04-24 13:59
35 views 0
Examen Java

24/04/10 DESS: Examen Java 1

    Examen Java

    Date : 24/04/2010

    Public : DESS Info

    De : Pascal Molli

    Durée : 2 heures Examen Java

    1 Exercice (2 points):

    Quelle est la différence entre un langage dynamique et un langage réflexif ? A quelle catégorie appartient JAVA ?

    2 Exercice (2 points):

    Décrivez les différentes utilisations possibles dun ? package ?. 3 Exercice (6 points):

    La classe “FileCopier” ci-dessous réalise la copie d’un fichier dans un autre. On veut pouvoir surveiller la

    progression de la copie pendant que celle-ci s’effectue. Concrètement, le programme doit afficher régulièrement, le nombre de “bytes” copiés. Nous présentons ci-dessous, trois manières de réaliser cette fonctionnalité.

    Comparez ces trois manières de faire ! Vous illustrerez les différences fondamentales entre ces trois approches !

     import java.io.*; } import java.io.*; } class Main { class Main { public static void main(String public static void main(String args[]) throws IOException { args[]) throws IOException { FileCopier fc=new FileCopier fc=new FileCopier(args[0],args[1]); FileCopier(args[0],args[1]); Slider s=new Slider(fc); Slider s=new Slider(fc); s.start(); s.start(); fc.copy(); fc.copy(); s.stop(); s.stop(); } } } } class FileCopier { private FileInputStream from=null; class FileCopier { private FileOutputStream to=null; private FileInputStream from=null; private int bytes_copied; private FileOutputStream to=null; private int bytes_read; private int bytes_copied; private int bytes_read; FileCopier(String from,String to) throws IOException { FileCopier(String from,String to) this.from=new throws IOException { FileInputStream(from); this.from=new this.to=new FileOutputStream(to); FileInputStream(from); } this.to=new FileOutputStream(to); } void copy() throws IOException{ byte[] buffer=new byte[1]; void copy() throws IOException{ while byte[] buffer=new byte[1]; ((bytes_read=from.read(buffer))!=-1) { while to.write(buffer,0,bytes_read); ((bytes_read=from.read(buffer))!=-1) { bytes_copied+=bytes_read; to.write(buffer,0,bytes_read); } bytes_copied+=bytes_read; from.close(); Thread.currentThread().yield(); to.close(); } } from.close(); to.close(); int getState() { } return bytes_copied; } int getState() { } return bytes_copied; } class Slider extends Thread { } private FileCopier fc; class Slider extends Thread { Slider(FileCopier fc) { private FileCopier fc; this.fc=fc; } Slider(FileCopier fc) { this.fc=fc; public void run() { } while (true) { System.out.println(fc.getState( public void run() { )+" copied"); while (true) { }

    24/04/10 Confidentiel 1

24/04/10 DESS: Examen Java 2

     System.out.println(fc.getState(import java.io.*; )+" copied"); yield(); class Main { } public static void main(String } args[]) throws IOException { } FileCopier fc=new FileCopier(args[0],args[1]); Slider s=new Slider(fc); s.setPriority(Thread.currentThread().getPriority()+1); s.start(); fc.copy(); s.stop(); }} class FileCopier { private FileInputStream from=null; private FileOutputStream to=null; private int bytes_copied; private int bytes_read; FileCopier(String from,String to) throws IOException { this.from=new FileInputStream(from); this.to=new FileOutputStream(to); } void copy() throws IOException{ byte[] buffer=new byte[1]; while ((bytes_read=from.read(buffer))!=-1) { to.write(buffer,0,bytes_read); bytes_copied+=bytes_read; } from.close(); to.close(); } int getState() { return bytes_copied; } } class Slider extends Thread { private FileCopier fc; Slider(FileCopier fc) { this.fc=fc; } public void run() { while (true) { System.out.println(fc.getState()+" copied"); try {sleep(5);} catch (Exception e){;}; } } }

    4 Exercice

    Voici une série de ? torture tests ?. Pour chaque programme, vous préciserez si le programme compile et si

    oui, le résultat de son exécution. Si il ne compile pas, vous en préciserez la raison. Attention, une erreur

    dexécution nest pas une erreur de compilation ! 4.1 Exercice (2 points)

    class A { public String toString() { return "A"; } } class B extends A { public String toString() { return "B"; } } class C { void print(A a) { System.out.println("print A"); System.out.println(a); } void print(B b) { System.out.println("print B"); System.out.println(b);

    24/04/10 Confidentiel 2

    24/04/10 DESS: Examen Java 3

     } } class Main { public static void main(String args[]) { B b = new B(); A a = b; C c = new C(); c.print(b); c.print(a); } }

    4.2 Exercice (2 points) class E1 extends Exception {} class E2 extends E1 {} class E3 extends Exception {} class A { void print() throws E1 {}; } class B extends A { void print() throws E2, E3 {} }

    4.3 Exercice (2 points) interface Printable { void print(); } class A { private String m="yo"; Printable printer(final String msg) { String sep=":"; class Printer implements Printable { public void print() { System.out.println(m+sep+msg); } } return new Printer(); } } class Main { public static void main(String argv[]) { A a=new A(); Printable pa=a.printer("men"); pa.print(); } }

    5 Exercice (4 points) Quest ce que le MVC ? quel est son but ? Compléter le programme suivant pour implanter le MVC import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.util.*; class SaySomething extends java.util.Observable { String msg; SaySomething(String msg) { setMsg(msg);

    24/04/10 Confidentiel 3

24/04/10 DESS: Examen Java 4

} String getMsg() { return msg; } void setMsg(String msg) { this.msg=msg; // à compléter } void print() { System.out.println("I say :"+msg); } JComponent display() { // à compléter } class MyGui extends JPanel implements java.util.Observer { JLabel l=new JLabel(msg); JButton b=new JButton(msg); MyGui() { this.setLayout(new FlowLayout()); this.add(l); this.add(b); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { SaySomething.this.print(); } }); } public void update(java.util.Observable o,Object arg) { // à compléter } } } class Main { static public void main(String args[]) { JFrame f= new JFrame(); final JPanel p=new JPanel(); f.setContentPane(p); p.setLayout(new BorderLayout()); final SaySomething ss=new SaySomething("yo"); p.add("North",ss.display()); p.add("South",ss.display()); Thread r = new Thread() { boolean state=true; public void run() { while (true) { if (state) { ss.setMsg("Miam") ; state=false; } else { ss.setMsg("yo"); state=true; } try { sleep(200); } catch (InterruptedException e) {} } } }; r.start(); f.pack(); f.setSize(400,400); f.setVisible(true); } }

24/04/10 Confidentiel 4

Report this document

For any questions or suggestions please email
cust-service@docsford.com