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/05/27 08:45] – [Programm] 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.
Zeile 390: Zeile 442:
 Das Monte-Carlo-Verfahren verwendet man in der Praxis natürlich nicht für so einfache ebene Flächen wie die Beispiele oben, sondern nur zur Berechnung des Flächeninhalts komplex gestalteter Flächen in mehrdimensionalen Räumen. Das Monte-Carlo-Verfahren verwendet man in der Praxis natürlich nicht für so einfache ebene Flächen wie die Beispiele oben, sondern nur zur Berechnung des Flächeninhalts komplex gestalteter Flächen in mehrdimensionalen Räumen.
 </WRAP> </WRAP>
 +[[.loesung:start|Hier geht's zur Lösung.]]
  
klassen2/interfaces/start.1590561933.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki