Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Wiki ...................................................................................................................................... 2
1.) The way Java works .......................................................................................................5
2.) Making your first object ..................................................................................................5
3.) Arithmetic calculations ..................................................................................................6
4.) IF-Statement ....................................................................................................................6
5.) Struktogramme ...............................................................................................................8
6.) What is JUnit?...................................................................................................................8
7.) Primitive Types .................................................................................................................9
8.) "and(&&)" and "or(||)" .................................................................................................10
9.) StringToInt / IntToString..................................................................................................12
Arrays ..................................................................................................................... 13
10.) Switch Statement ........................................................................................................14
11.) Comparing Strings ......................................................................................................15
12.) References ..................................................................................................................16
13.) While loops ..................................................................................................................17
14.) 2-dimensionale Arrays ...............................................................................................18
15.) Tic Tac Toe ...................................................................................................................19
16. DOS Commands ...........................................................................................................28
17.) Exceptions ...................................................................................................................29
Alert (Handy Application) ..................................................................................30
18.) Collections...................................................................................................................30
Unterschied zwischen Array und Collection .....................................................30
Zur Colletion.........................................................................................................31
Was Programmieren selbst ist, dass wird hier wohl jeder wissen. Man sagt dem
Computer was er tun soll und das in einer Sprache die er verstehen kann
(oder besser sollte ), auch wenn er das geschriebene teilweise am Anfang
eher nicht versteht dann komplettiert er das geschriebene auf logischer Basis -
> das nennt sich Hotspot-Optimierung ( -> Die HotSpot-Technik ist seit der JRE
Dieser Teil der Erklrung Javas beinhaltet auch glcklicherweise das Java-
Programme PLATTFORMUNABHNGIG sind, das bedeutet das diese meistens
ohne jegliche Vernderung des Codes auf jedem PC laufen !! Es gilt nur bei
verschiedenen Javaversionen aufzupassen !!
Klassen:
Eine Klasse oder ein Objektyp, fasst mehrere Objekte der selben Art
zusammen. Ein Beispiel: Du selbst bist ein Objekt der Klasse Mensch.
Objekte(auch Instanzen):
Objekte sind alle Komponenten deines Programms. Ein Objekt ist zum Beispiel
der Cube aus ex001. Du bist die Instanz "Schler" der Klasse Mensch (bildlich
gesprochen).
Eigenschaften(auch Attribute):
Natrlich hat jedes Objekt verschiedene Eigenschaften. In deinem Programm
kannst du einem Objekt so viele Eigenschaften geben wie du willst. Du, also
das Objekt Schler hat Eigenschaften wie: Augenfarbe, Krpergre, Alter,
usw.
Variablen:
Das Problem ist, dass jeder Schler eine andere Augenfarbe hat. Darum
werden die Eigenschaften durch sogenannte Variablen definiert. Die
Variablen dienen als Platzhalter, damit jede deiner Eigenschaften einen
beliebigen Wert annehmen kann. Jetzt kannst du deinem Programm sagen,
dass Schler1 blaue Augen hat, Schler2 allerdings grne.
Instanzvariablen/lokale Variablen:
Auch innerhalb der Variablen gibt es wieder Unterschiede. Auf eine
Instanzvariable zum Beispiel kann jedes deiner Objekt und jede Methode
innerhalb deiner Klasse zugreifen, whrend auf lokale Variablen nur die
Methode zugreifen kann in der sie vereinbart wurde:
int x = 0;
Im obigen Programmfragment gibt g() immer 0 zurck (den Wert der globalen
Variablen x,nicht den Wert der lokalen Variablen x in g()). Dies ist so, weil in f()
immer nur das globale x sichtbar ist.
Instanzvariablen haben immer einen vordefinierten Wert. Wenn du der
Variable keinen Wert zuweist, oder keine Setter/Methode aufrufst, bekommt
die Variable trotzdem einen Wert:
int = 0
float/double = 0.0
boolean = false
references = null
Methoden:
Eine Methode gibt deinem Objekt kurz gesagt die Mglichkeit etwas zu tun.
Bei unserem Objekt Schler der Klasse Mensch wre eine Methode zum
Beispiel:
bewegeArm() {...}
Anweisungen:
Als Anweisung bezeichnet man einzelne Befehle die unter anderem in einer
Methode zusammengefasst werden. In dieser Form nennt man sie
Anweisungsblcke.
Schreibweise:
Im Programmieren gibt es einige Eigenheiten bei der Schreibweise. Hier ist
eine kurze Liste der Dinge die zu beachten sind:
The goal is to write one application and have it work on whatever device
your friends have.
You need two classes. One class for the type of object you want to use (Dog,
Alarm Clock, Television, etc.) and another class to test your new class. The
tester class is where you put the test-method and in that test () method you
Will man die Wurzel aus einer Zahl ziehen, braucht man diesen
Ausdruck: Math.sqrt (...);
Braucht man die Zahl Pi, bentigt man folgenden Befehl: Math.PI (...);
(Man kann natrlich auch die Zahl 3,141529... eingeben, das Ergebnis
wird dann jedoch ungenauer..)
Das if-Statement kann man sich in einem Programm wie eine Weggabelung
vorstellen. Das Programm entscheidet sich fr eine von zwei Mglichkeiten.
Natrlich tut es das nicht eigenmchtig. In einem if-Statement gibt es immer
eine Bedingung die zwei Werte(Variablen) miteinander vergleicht. Ein
if ( x = 4 )
{
Ergebnis = true;
}
else
{
Ergebnis = false;
}
Nun gibt es innerhalb einer Bedingung einige Dinge die zu beachten sind. Das
"==" zum Beispiel ist ein sogenannter "Vergleichoperator".
Sollte das Bild nicht angezeigt werden findet man es auch am "Mail-Server"
unter dem Namen "Strukted(ex0021)"!!!
Es werden 6 Zahlen darauf berprft, ob sie einen positiven Wert haben. Sollte
das zutreffen werden sie auf eine neue Variable addiert. In einem
Struktogramm kommen Bedingungen ganz ohne Klammern und ohne das
obligatorische "if" aus. Ein if-statement wird durch ein Dreieck mit einem ja-
Zweig und einem nein-Zweig dargestellt. Anweisungen bzw.
Anweisungsblcke werden in Rechtecken dargestellt. Diese Art ein Programm
zu "skizzieren" macht einem die Arbeit einfacher und bietet bessere bersicht.
JUnit is a simple, open source framework to write and run repeatable tests.
JUnit features include assertions for testing expected results:
delta: maximum delta between expected and actual for which both
example:
Byte:
8 bits: -128 to 127
short:
16 bits: -32 768 to 32 767
int:
32 bits: -2 147 483 648 to 2 147 483647
long:
64 bits: huge to huge (264)
int x;
x = 234;
byte b = 89
but:
int x = 24;
byte b = x;
floating point:
-) "and" gate
Mit dem "and" gate knnen mehrere Bedingungen innerhalb eines if-
statements verknpft werden. Beim "and"-gate allerdings mssen alle
Bedingungen erfllt werden, damit der Ja-Zweig des if-statements
erreicht werden kann. (Verknpfungszeichen beim "and"-gate sind
zwei kaufmnnische "und"-Zeichen: &&) SHIFT + 6
-) "or" gate
Mit dem "or" gate knnen mehrere Bedingungen innerhalb eines if-
statements verknpft werden. Beim "or"-gate allerdings muss nur eine
der Bedingungen erfllt werden, damit der Ja-Zweig des if-
statements erreicht werden kann. (Verknpfungszeichen beim "or"-
gate sind zwei senkrechte Striche: || AltGr + <
StringToInt:
String text = "123";
int x = Integer.parseInt (text);
text = "123.123"
double z = Double.parseDouble (text);
1 2 3 4
2
Array
1 Das erstellte Array
1 2 Der Zeiger, der auf den
Speicher verweist
3 Der Speicher
Jetzt sollte man allerdings keinesfalls glauben, dass ein Array nur mit Integer
Variablen gefllt sein kann. Genauso gut knnte man ein Array aus Double
oder Float Variablen machen. Ein anderes Beispiel ist die Zeichenkette String.
Ein String ist, wie wir wissen auch nichts anderes als ein Objekt. Aber noch viel
prziser ausgedrckt, ist ein String ein Array, gefllt mit Character Variablen
(char). Vermutlich wegen der hufigen Anwendung des Strings jedoch,
vereinheitlichte man ihn als Objekt in Java.
Doch fr alle, die hinter die Fassade dieser vorgefertigten Methode blicken
wollen gibt es das im Unterricht durchgenommene Bespiel ex0025_StringToInt.
9 ifs .. value == 1
switch (value)
{
case 1 : help = 1;
break;
case 2 : help = 2;
break;
case 3 : help = 3;
break;
.
.
.
Whrend du mit Strings arbeitest, wirst du bemerken, dass du sie mit == und !=
vergleichen kannst. Allerdings irgt dies einige Fallen in die man nur zu leicht
hineinfallen kann.
if(text1 == text2)
{
HELP!
HELP!
wird
verglichen
help = true;
}
else
{
help = false;
}
Man sollte meinen, dass dieser Test eindeutig den Wert true ausgeben wird,
if(text1 equals(text2))
{
help = true;
}
else
{
help = false;
}
Dieser Test wird jetzt sehr wohl den Wert true ausgeben, da die equals()
Methode zwei Strings auf ihre characers (char) und somit auf ihren Inhalt
vergleicht.
Anders sieht das Vergleichen von gewhnlichen Objekten (wie eir sie in
unseren
Tester classes erstellen) aus hier ist es nmlich sehr wohl erlaubt die
== und != Operatoren zu verwenden.
if(b==c)
werden.}
Book a = c;
if(a==c)
{|| Dieser Vergleich ergibt true, da das Objekt a alle Werte von c
bernommen hat.}
if(a==b)
{||false}
int i = 0;
sum = 0;
int i; int i = 0;
sum = 0; sum = 0;
do
{
for (i=0; i<nums.length; while (i<nums.length)
if (nums.length > 0)
i++) {
{
{ sum = sum + nums[i];
sum = sum + nums[i];
sum = sum + nums[i]; i++;
i++;
} }
}
while (i<nums.length);
0 0 0 0 0
Es wird ein Feld mit 3 Pltzen in die x-Richtung und 3 Feldern in die y-Richtung
erstellt.
000 00 002
1
010 01 012
1
020 02 022
1
Mit einer einfachen for-Schleife kann man allen Feldern des Arrays Werte
zuweisen.
int r, c;
for(r=0; r<3; r++)
{
for(c=0; c<3; c++)
{
nums[r][c]=1;
}
}
Als erstes sind einige berlegungen anzustellen um zu wissen wie man so ein
Projekt angeht. Folgendes muss beachtet werden:
Erzeugung der Spieloberflche und alle Felder auf den Wert 0 setzen.
Bei Klick auf ein Feld, dem Feld den Wert des Spielers zuweisen.
Beim erneuten Klick den Spieler wechseln und den neuen Wert zuweisen.
Kein berschreiben schon besetzter Felder zulassen.
berprfen ob die Summe einer Zeile, Spalte oder Diagonale 3 bzw. -3
betrgt.
Wenn ja, hat der Spieler dessen Summe 3 bzw. -3 ist gewonnen.
Als nchstes berlegt man sich wie man all diese Aufgaben in Methoden
aufteilt. Diese Art der Aufgabenverteilung innerhalb eines Programms nennen
wir Divide & Conquer.
Java Class:
return win;
}
do
GUI Klasse:
break;
case '2':
if (column == '0')
{
if (ttt.getPlayer() == 1)
{
bt20.setText("X");
bt20.setEnabled(false);
} else
{
bt20.setText("O");
bt20.setEnabled(false);
}
}
if (column == '1')
{
if (ttt.getPlayer() == 1)
{
bt21.setText("X");
bt21.setEnabled(false);
} else
{
bt21.setText("O");
String ac = evt.getActionCommand();
char row = ac.charAt(0);
char column = ac.charAt(1);
if (ttt.gameOver() != 1)
{
if (game == true)
{
ttt.nextPlayer();
ttt.calculateNextMove();
updateView(intToChar(ttt.getRow()), intToChar(ttt.getColumn()));
ttt.nextMove(ttt.getRow(), ttt.getColumn());
ttt.print();
ttt.gameOver();
count++;
}
}
}
if (ttt.gameOver() == -1)
{
try
{
f.readInput();
}
try
{
.
.
.
}
Array
Nums [ 3 ] = 4;
/ / / 4 / /
0 1 2 3 9
List
Vector
noch leer
Size () . 0
Zur Colletion
Public CollectionTester()
{
List = new Vector ();
}
Public void test ()
{
Int i;
For ( i = 0; I < 10; I ++)
{
Integer obj. = new Integer ( I + 1 );
List.add ( obj. );
}
Sout ( list.size() );
Sout ( list.toString () );
1 2 9
add ( int index, Object obj. ) -> fgt ein Element an einem best. Index
hinzu.
add (Object obj) -> fgt ein Element am Ende der Liste hinzu.
addElement ( Object obj. ) -> gleich wie 1)
clear () -> lscht den kompletten Inhalt ( Wert = 0 )
contains ( Object obj. ) -> schaut nach ob z.B. 5 enhalten ist !
elementAt ( int index ) -> auf ein Element auf einem best. Index
zugreifen
get ( int Index ) -> gleich wie 6)
insertElementAt ( object obj; int Index ) -> gleich wie 2) nur andere
Parameter Reihenfolge
isEmpty () -> schaut ob die Collection wirklich leer ist oder nicht ( true
false )
size () -> liefert die Gre der Collection
remove ( int index ) -> lscht das Element an einem best. Index
remove ( object obj. ) -> lscht nach eingegebenem Wert
add ( int index, Object obj. ) -> fgt ein Element an einem best. Index
hinzu.
add (Object obj) -> fgt ein Element am Ende der Liste hinzu.
clear () -> lscht den kompletten Inhalt ( Wert = 0 )
contains ( Object obj. ) -> schaut nach ob z.B. 5 enhalten ist !
get ( int Index ) -> gleich wie 6)
isEmpty () -> schaut ob die Collection wirklich leer ist oder nicht ( true
false )
size () -> liefert die Gre der Collection
remove ( int index ) -> lscht das Element an einem best. Index
remove ( object obj. ) -> lscht nach eingegebenem Wert
Code :
Version 1
Version 2
Neben Applikationen fr die Konsole oder das Handy, kann man natrlich
auch die bekannten Desktop-Applikationen (GUI-Applikationen)mit Java
schreiben. In Verbindung mit 2-dimensionalen Arrays und GUI-Applikation
haben wir das Spiel Tic-Tac-Toe programmiert.
Fr eine GUI-Applikation braucht man eine Java JFrame Form Datei. Diese
Datei besteht
aus einer
Oberflche:
Diese
Oberflche
kann man mit
verschiedenen
Schaltflchen,
Anzeigen,
Mens u.a.
ausstatten.
Auerdem kann
man der
Dieses Layout ist dafr verantwortlich, wie die Elemente angeordnet werden.
Zum Beispiel gibt es das Grid Layout. Bei diesem Layout werden alle Elemente
an einem einstellbaren Raster ausgerichtet. Zum Beispiel 3x3:
Mit Low Level API Programmen kann man in Java einfache geometrische
Formen und Objekte graphisch darstellen. Dabei bedient sich Java an
Canvas, einer Code-Struktur die als eine Art Leinwand dient, um die Formen
darzustellen.
Mit einer GUI Oberflche kann man das gezeichnete auch am Bildschirm
ausgeben. Dazu bentigt man:
g.Zeichenbefehl(Koordinaten /Parameter);
g.setColor(Color.FARBE);
g.drwaline(xStartKoordinate, yStartKoordinate, xEndKoordinate,
yEndKoordinate);
g.drawRect/Oval(xStartKoordinate, yStartKoordinate, Breite, Hhe);
g.fillRect/Oval(xStartKoordinate, yStartKoordinate, Breite, Hhe);
Als bisheriges Highlight in Sachen Low Level API haben wir einen weiteren
Spieleklassiker programmiert. Ping Pong:
super(true);
paddleY = 250;
padlength = 60;
padheight = 20;
d = 40;
speedX = 1;
speedY = -1;
this.gui=null;
paddleX = paddleX - 1;
paddleX = paddleX + 1;
gui.startApp();
g.setColor(255, 0, 0);
g.setColor(0, 0, 0);
render(g);
gameloop.start();
gameloop = null;
Graphics g = this.getGraphics();
Thread t = Thread.currentThread();
while (t == gameloop)
update(getKeyStates());
flushGraphics();
if (ballX + d / 2 == getWidth())
speedX = -1;
if (ballX - d / 2 == 0)
speedX = 1;
if (ballY - d / 2 == 0)
speedY = 1;
if (ballY + d / 2 == paddleY)
speedY = -1;