In BlueJ: Wenn die Schueler.class Datei erfolgreich erstellt werden konnte, können in BlueJ Objekte erzeugt werden. Man geht mit der Maus auf die Klasse und drückt die rechte Maustaste. Im Context_Menü sieht man die verfügbaren Konstruktoren und kann Objekte erstellen. Hinweis: Wenn man einen Konstruktor mit Parameter wählt, öffnet sich automatisch ein Dialog um die Werte für die Parameter einzugeben. Achtung: Ein String muss zwischen einen doppelten Hochkomma eingeschlossen werden. Im Source-Code: Erzeugen eines Schueler-Objektes mit dem default-Konstruktor: Schueler schueler=new Schueler(); // default Konstruktor Erzeugen eines Schueler-Objektes mit dem Konstruktor mit Parameter: Schueler schueler1=new Schueler(“Hugo“,“Boss“); // Konstruktor mit Parameter Eine Klasse ist der Bauplan für Objekte.
0 Comments
Der Source-Code (z.B. die Schueler.java Datei) wird durch den Compiler, wenn es keine Syntaxfehler gibt, in einen maschinenunabhängigen Byte-Code umgewandelt.
Es entsteht jetzt eine neue Datei mit Klassenname und der Erweiterung .class. Für unsere Klasse: Schueler.class Der Byte-Code kann jetzt auf der jeweiligen Maschine durch die Java-Runtime-Umgebung ausgeführt werden. Mit dem Lernprogramm BlueJ kann man jetzt Objekte erzeugen und mit ihnen interagieren (=Methoden aufrufen). In anderen Entwicklungsumgebungen (z.B. Eclipse) ist es vorher noch notwendig eine main-Methode zu erzeugen in der die Schueler-Objekte erzeugt und mit ihnen interagiert werden kann. Hinweis: In BlueJ ist die main-Methode unsichtbar eingebettet. Wenn man das Klassendiagramm erstellt hat, ist es einfach daraus das Grundgerüst einer Java-Klasse abzuleiten.
Hinweis: Jede Klasse wird in Java mit Klassenname und der Dateiname-Erweiterung .java gespeichert. Diese Datei findet man im Projektverzeichnis der jeweiligen Entwicklungsumgebung (z.B. BlueJ). Für unsere Klasse: Schueler.java Wenn die Klasse syntaktisch korrekt erstellt wurde, kann die Klasse übersetzt (kompiliert, compiled) werden.
Man muss sich überlegen, welche Eigenschaften (=Attribute) für das Objekt in der Anwendung wichtig sind. Für jede Eigenschaft muss außerdem festgelegt werden, welche Werte die Eigenschaft annehmen kann.
Z.B.
Gleichzeitig mit den Eigenschaften müssen auch die Methoden entwickelt werden. Bei den Methoden unterscheidet man solche, die das Objekt nach außen repräsentieren und solche die nur innerhalb der Klasse (Hilfsmethoden) Bedeutung haben. Achtung: Derzeit entwerfen wir für jede Eigenschaft der Klasse eine get-, bzw. set-Methode. Mit diesen Methoden können wir die Eigenschaft abfragen (get) bzw. verändern (set). Weiters gibt es Konstruktoren, die für das Erzeugen der Objekte wichtig sind. Sie unterscheiden sich von den Methoden dadurch, dass sie keinen Rückgabewert haben. Eigenschaften von Konstruktoren:
Schueler - vorname: String - familienname: String - geburtsjahr: int+ Schueler() + Schueler(vorname: String, familienname: String, geburtsjahr: int) + getVorname():String + getFamilienname():String + getGeburtsjahr():int + setVorname(vorname: String): void + setFamilienname(familienname: String): void + setGeburtsjahr(geburtsjahr: int): void +print(): void Wenn man eine Java-Anwendung für eine Schule entwickelt, muss man sich überlegen welche Objekte (vereinfacht gesagt) für diese Anwendung benötigt werden. Dann wird man draufkommen, dass Schüler, neben anderen Personen (Lehrer, Verwaltungspersonal, …), Objekte sind, die in einer solchen Anwendung vorkommen.
Java ist eine der populärsten objektorientierten Programmiersprachen mit vielen Möglichkeiten.
Wegen der Komplexität, ist es für Anfänger schwierig sich in das Thema einzufinden, da es nicht nur um die Programmiersprache alleine geht, sondern auch um das objektorientierte Konzept. Durch unterschiedliche, auch redundante, Fragestellungen und deren Beantwortung, wird versucht, sich der Komplexität anzunähern. In the beginning was the autonomous playing of games of chance, such as Roulette or Black Jack. The necessary user input (keyboard, mouse) must be autonomous, using a game strategy (what is the next move)? without user. In order to apply a strategy, the result of the last match has to be recorded and evaluated. The scores must be stored in a database, which results in new strategies. This poses various challenges to a program:
Java was chosen as the programming language. The resulting program was operational and played autonomously. What were the key findings:
There are profit phases. Often one wins especially after breaks, WHY? There is no strategy to offset the losses. But above all, in the long run nobody wins, except the provider! Am Anfang stand das autonome Bespielen von Glücksspielen, wie z.B. Roulette oder Black Jack. Die dabei notwendigen Benutzereingaben (Tastatur, Maus) müssen unter Anwendung einer Spielstrategie (was ist der nächste Zug) autonom, d.h. ohne Benutzer, durchgeführt werden. Um eine Strategie anwenden zu können, muss das Ergebnis des letzten Spiels erfasst und ausgewertet werden. Die Spielergebnisse müssen in einer Datenbank gespeichert werden, woraus sich wieder neue Strategien ergeben. Dies stellt an ein Programm verschiedene Herausforderungen:
Als Programmiersprache wurde Java gewählt. Das entstandene Programm war einsatzfähig und spielte autonom. Was waren die wichtigsten Erkenntnisse:
Es gibt Gewinnphasen. Oft gewinnt man vor allem nach Spielpausen, WARUM? Es gibt keine Strategie, mit der man die Verluste wieder ausgleichen kann. Aber vor allem, langfristig gewinnt niemand, außer der Anbieter! |
Autorvielerlei interessen, neben digitalen vor allem auch analoge. ArchivKategorien |