Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:interfaces:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
klassen2:interfaces:start [2020/06/10 22:21] – [Aufgabe] Martin Pabstklassen2:interfaces:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Interfaces ====== ====== Interfaces ======
 +{{ youtube>dn6FT_g8OZk?large }}
 Stellen wir uns ein Bibliotheksprogramm vor, das verschiedene Listen ausgeben kann: Stellen wir uns ein Bibliotheksprogramm vor, das verschiedene Listen ausgeben kann:
   * eine Liste aller Bücher der Bibliothek   * eine Liste aller Bücher der Bibliothek
Zeile 38: Zeile 39:
 <HTML> <HTML>
  
-<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'id': 'Interfaces1'}">+<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'id': 'Interfaces1', 'withBottomPanel': true}">
  
 <script type="text/plain" title="BildschirmAusgeber.java"> <script type="text/plain" title="BildschirmAusgeber.java">
Zeile 68: Zeile 69:
 <HTML> <HTML>
  
-<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'id': 'Interfaces2'}">+<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'id': 'Interfaces2', 'withBottomPanel': true}">
  
 <script type="text/plain" title="BildschirmAusgeber.java"> <script type="text/plain" title="BildschirmAusgeber.java">
Zeile 121: Zeile 122:
 <HTML> <HTML>
  
-<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'id': 'Interfaces3'}">+<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'id': 'Interfaces3', 'withBottomPanel': true}">
  
 <script type="text/plain" title="Listengenerator.java"> <script type="text/plain" title="Listengenerator.java">
Zeile 212: Zeile 213:
 Ein Interface sieht im UML-Diagramm aus wie eine Klassenkarte, der Bezeichner ist jedoch kursiv geschrieben und durch ein vorangestelltes //<<interface>>// als solches gekennzeichnet. Dass eine Klasse ein Interface implementiert, kennzeichnet man im UML-Diagramm durch eine gestrichelte Verbindungslinie, die beim Interface in ein Dreieck mündet. Ein Interface sieht im UML-Diagramm aus wie eine Klassenkarte, der Bezeichner ist jedoch kursiv geschrieben und durch ein vorangestelltes //<<interface>>// als solches gekennzeichnet. Dass eine Klasse ein Interface implementiert, kennzeichnet man im UML-Diagramm durch eine gestrichelte Verbindungslinie, die beim Interface in ein Dreieck mündet.
  
 +===== Aufgabe 1 =====
 +Schreibe eine Klasse ''JSonAusgeber'', die das Interface ''Ausgeber'' implementiert und Tabellen im [[https://en.wikipedia.org/wiki/JSON|JSon-Format]] als Liste ausgibt, also so:
 +<code javascript>
 +[ 'Zeile1, Spalte1', 'Zeile1, Spalte2' ],
 +[ 'Zeile2, Spalte1', 'Zeile2, Spalte2' ]
 +</code>
 +====== Anwendung: Timer ======
 +<WRAP center round info 60%>
 +Wenn Du möchtest, dass eine Methode periodisch nach immer gleichen Zeitabständen aufgerufen wird, kannst Du dafür die ''Timer''-Klasse benutzen. Die Methode
 +<code java>
 +   Timer.repeat(runnable, deltaTimeInMs);
 +</code> 
 +bekommt als Parameter ein Objekt übergeben, das das Interface ''Runnable'' implementiert und damit gesichert eine Methode ''run()'' besitzt:
 +<code java>
 +interface Runnable{
 +
 +  public void run();
 +
 +}
 +</code>
 +Diese Methode wird von der Klasse ''Timer'' nach jeweils ''deltaTimeInMs'' Millisekunden immer wieder aufgerufen.
 +</WRAP>
 +
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'InterfacesTimer'}">
 +
 +<script type="text/plain" title="TimerExample.java">
 +Timer.repeat(new Zähler(), 500);
 +
 +class Zähler implements Runnable {
 +   
 +   int n = 1;
 +
 +  public void run() {
 +           SystemTools.clearScreen();
 +           println(n + "-ter Aufruf!");
 +           n++;
 +  }
 +
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +===== Aufgabe 2 =====
 +Schreibe ein Programm, dass ständig die seit dem Programmstart vergangene Zeit in Minuten und Sekunden (Beispiel: 03:12) anzeigt. \\ 
 +//Tipp: Die Methode ''SystemTools.clearScreen()'' löscht den Textausgabebereich.//
  
-===== Flächenberechnung mittels Monte-Carlo-Simulation =====+====== Flächenberechnung mittels Monte-Carlo-Simulation ======
 {{ :klassen2:interfaces:pasted:20200521-225753.png}} {{ :klassen2:interfaces:pasted:20200521-225753.png}}
 {{:klassen2:interfaces:monte-carlo_1.png?400 |}} {{:klassen2:interfaces:monte-carlo_1.png?400 |}}
Zeile 260: Zeile 312:
 <HTML> <HTML>
  
-<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'id': 'Interfaces4'}">+<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'id': 'Interfaces4', 'withBottomPanel': true}">
  
 <script type="text/plain" title="Einheitskreis.java"> <script type="text/plain" title="Einheitskreis.java">
Zeile 381: Zeile 433:
  
  
-===== Aufgabe =====+===== Aufgabe 3 (freiwillig) =====
 Übernimm den Code für das Interface ''Fläche'' und die Klasse ''Flächenberechner'' und programmiere dazu Übernimm den Code für das Interface ''Fläche'' und die Klasse ''Flächenberechner'' und programmiere dazu
   * a) Eine Klasse Dreieck, die das Dreieck mit den Eckpunkten $(0,0)$, $(0,1)$ und $(1,0)$ repräsentiert.   * a) Eine Klasse Dreieck, die das Dreieck mit den Eckpunkten $(0,0)$, $(0,1)$ und $(1,0)$ repräsentiert.
klassen2/interfaces/start.1591820463.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki