Advertisement
niktor

Untitled

Apr 26th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.53 KB | None | 0 0
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         HagenGames hg = new HagenGames();
  4.         K1618Restricted game = hg.buyGame();
  5.        
  6.         game.playGame();
  7.         // game.update(); führt zu einem Compilerfehler: The method update() is undefined for the type K1618Restricted
  8.        
  9.         hg.udateK1618(game); // Aufgabe a)
  10.         game.playGame();
  11.     }
  12. }
  13.  
  14. public interface K1618Restricted {
  15.     public void playGame();
  16. }
  17.  
  18. class HagenGames {
  19.     public K1618Restricted buyGame() {
  20.         return new K1618();
  21.     }
  22.  
  23.     public void udateK1618(K1618Restricted game) {
  24.         ((K1618) game).update();
  25.     }
  26. }
  27. class K1618 implements K1618Restricted{
  28.     private double version = 1.0;
  29.  
  30.     public void playGame() {
  31.         System.out.println("Running Kurs1618, Version " + version);
  32.     }
  33.  
  34.     public void update() {
  35.         version = version + 0.1;
  36.     }
  37. }
  38.  
  39. Aufgabe d)
  40. Um die Methode update() der Klasse K1618 vor der Klasse Test zu verstecken, hat man zwei Möglichkeiten.
  41.  
  42. 1.) Die Klasse K1618 und die Klasse Test in verschiedene Pakete packen und die Methode update() als paketlokal, also ohne Modifizierer deklarieren. Die Methode update() wäre nur innerhalb des Pakets sichtbar zu der die Klasse K1618 gehört. Die Klasse HagenGames müsste dann zusammen mit K1618 in das gleiche Paket gepackt werden.
  43.  
  44. 2.) Alle Klassen in einem Paket, aber die Klasse K1618 als innere Klasse von HagenGames zu realisieren und die methode update() der Klasse K1618 als private zu deklarieren. Die Methode wäre dann nur innerhalb der Klasse HagenGames sichtbar.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement