Java – Cheatsheet - Vorkurs Informatik

„Goodcodeisitsownbestdocumentation.“
(SteveMcConnell)
Java–Cheatsheet
JavaGrundlagen
Textdatei„MeineKlasse.java“
(mussdemNamenderKlasseentsprechen!)
AufbaueinerKlasse
NamederKlasse
public class MeineKlasse {
main()-Prozedur
public static void main(String[] args) {
String uni = "RWTH";
System.out.println(uni);
Rumpf(body)derProzedur
}
}
Kommentare
...
MehrzeiligerKommentar(beginntmit/*undendetmit*/)
/*
* Main-Prozedur: Einstiegspunkt (Die Ausführung des Programms startet hier)
*/
public static void main(String[] args) {
Zeilenkommentar(beginntmit//,
// String mit dem Inhalt "RWTH" erstellen
giltbiszumZeilenende)
String uni = "RWTH";
System.out.println(uni); // Gibt den Wert der Variable
(= RWTH) aus
}
...
Datentypen
Datentyp
WasspeichertderTyp?
Code-Beispiel
String
Zeichenketten(Text)
EineinzelnesZeichen(z.B.'a'oder'?')
GanzeZahlen(z.B.98,-172oder0)
EineKommazahl(z.B.1.25oder-177.3895)
Achtung:InJavamusseinPunktanstelledes
Kommasverwendetwerden!
Wahrheitswerttrue(wahr)oderfalse(falsch)
String titel = "Vorkurs Informatik";
char geschlecht = 'w';
char
int
double
boolean
int alter = 21;
double hoehe = 175.6;
boolean student = true;
Java–Cheatsheet
InformatikVorkurs
Variablen
Waswillmantun?
BeispielhafteUmsetzunginJava
DeklarationundInitialisierung
String uni = "RWTH";
Alternativ:
String uni; // Deklarieren.
uni = "RWTH"; // Wert zuweisen.
int k, l, n;
Hier:FüreineString-Variable
DeklarationvonmehrerenVariablen
Hier:FürVariablenvomDatentypint
DeklarationvonmehrerenVariablenmiteinzelnerInitialisierung
int k=7, l, n;
Hier:InitialisierungmehrererVariablen(k,l,n)vomDatentypint,
wobeinurkeinWertzugewiesenwird
Zuweisung
n = 5;
Hier:ZuweisungdesWerts5andieVariablen
ZuweisungdesErgebnisseseinerRechnung
l = n + k;
Hier:DasErgebnisvonn+kwirdderVariablelzugewiesen
ZuweisungdesErgebnisseseinerRechnungmitKlammersetzung
(Addition+,Subtraktion-,Multiplikation*,Division/)
n = l*2 - (k + 3 / n);
Arrays(Felder)
Waswillmantun?
BeispielhafteUmsetzunginJava
DeklarationeinesArrays
Hier:ArrayvomDatentypdouble
double[] daten;
// Der Wert von daten ist null.
DeklarationundInitialisierungeinesArrays
double[] daten = new double[5];
Hier:ArrayvomDatentypdoublemitderLänge5
ZuweisungeinesWertsaneineStelleimArray
Hier:ZuweisungandieersteundletzteStelledesArraysdaten
daten[0] = 3.0;
daten[4] = 7.0;
ZuweisungvoneinerStelleimArrayaneineVariable
double m = daten[1];
Hier:ZuweisungvonderzweitenStelleimArraydatenaneineVariablem
vomTypdouble
LängeeinesArrays
int datenLaenge = daten.length;
Ausgabe
Waswillmantun?
BeispielhafteUmsetzunginJava
AusgabeeinerZeichenkette
System.out.print("Hallo ");
System.out.print("Welt");
Hier:Ausgabevon„HalloWelt“
AusgabeeinerZeichenkettemitanschließendemZeilenumbruch
Hier:Ausgabevon„Hallo“und(ineinerneuenZeile)„Welt“
AusgabeeinesVariablenwertes
Zeichenkettenverbinden
Hier(füruni="RWTH"undn=5):(1)WillkommenanderRWTH!
(2)DasErgebnisist8
System.out.println("Hallo");
System.out.println("Welt");
System.out.println(n);
"Willkommen an der " + uni + "!"
"Das Ergebnis ist: " + (n+3)
Bedingungen
Waswillmantun?
BeispielhafteUmsetzunginJava
BedingteAusführung
if (n >= 5) {
// Etwas
}
if (n >= 5) {
// Etwas
} else {
Hier:Ausführungvonetwas,wennderWertvonngrößerodergleich5ist.
BedingteAusführungmitalternativerAusführungbeinichterfüllter
Bedingung
2
Java–Cheatsheet
InformatikVorkurs
Hier:Ausführungvonetwas,wennderWertvonngrößerodergleich5ist,
sonstwirdetwasanderesausgeführt.
WerteVergleichen
(<kleiner,<=kleinergleich,==gleich,!=ungleich>größer,>=größergleich)
Hier:(1)Istngleich0?(2)Istcungleich'a'?(3)Istdkleinerodergleich5,2?
StringsVergleichen
// Etwas anderes
}
n == 0
c != 'a'
d <= 5.2
s.equals("Hallo Welt");
Hier:Istsgleich"HalloWelt"?
NegationeinerBedingung
!(n > 5)
Hier:Istnnichtgrößerals5?
n >= 0 && n <= 5
VerknüpfungvonBedingungen(&&logisches„und“,||logisches„oder“)
Hier:Istnzwischen0und5?
if (!(n < 4) || (l != n + k && daten[0] == m)) {
Klammersetzungineinerkomplexeren
// Etwas
Bedingung
}
Schleifen
While-Schleife
Laufbedingung:Schleifewirdnurwiederholt,solangedieseerfüllt(wahr)ist
...
while ( n < MAX_N ) {
Hier:Schleifewirdsolangeausgeführt,wienkleineristalsMAX_Nist
n = n*2;
}
...
Rumpf(body)derSchleife:Daswaswiederholtwird
For-Schleife
Initialisierung:FestlegungderStartsituation(i.d.R.DeklarationundInitialisierungderZählvariablen)
Schrittweite:VeränderungderZählvariablennachjedemSchritt
...
(Hiergleichbedeutendzui=i+1sindi++sowiei+=1)
for ( int i=0 ; i<10||i<n ; i=i+1 ) {
Laufbedingung:Schleifewirdnurwiederholt,solangedieseerfüllt(wahr)ist
System.out.println(i + " zum Quadrat ist " + i*i);
}
...
Rumpf(body)derSchleife
Effekt:EswerdendieQuadratzahlenfür0bis9ausgeben.Also„0zumQuadratist0“,„1zumQuadrat
ist1“,„2zumQuadratist4“usw.bis„9zumQuadratist81“.
Initialisierung:StartebeidererstenStelle(Index=0!)
Schrittweite:ImmerzweiStellenweiter
for ( int i=0 ; i<daten.length ; i=i+2 ) {
...
Laufbedingung:SolangeZählvariablekleineralsAnzahlderStellenindaten
daten[i] = daten[i] / 2;
}
...
Rumpf(body):WertderStelledurchzweiteilenundderStellewiederzuweisen
Effekt:DerWertanjedereinzelnenStelledesArraysdatenwirddurchzweigeteilt.
3
Java–Cheatsheet
InformatikVorkurs
ProzedurenundFunktionen
EinfacheProzedurohneParameterundRückgabe
public class MeineKlasse {
Rückgabetyp„void“:KeineRückgabe
KeineArgumente/Parameter
public static void halloWelt ( ) {
Signatur
NamederProzedur
Rumpf(body)derProzedur
System.out.println("Hallo Welt!");
}
}
ProzedurmitParameternundRückgabe(Funktion)
public class MeineKlasse {
Rückgabe-Typ(returntype)
Argumente/Parameter
public static int addiere ( int a , int b ) {
NamederFunktion
// Ergebnis ausgeben
return a+b;
}
Signatur
Argumenttyp Argumentvariable
Rumpf(body)derFunktion
Rückgabe(returnstatement)
}
VerwendungvonProzeduren/Funktionen
public class HauptKlasse {
public static void main(String[] args) {
// Verwendung der Prozedur halloWelt
MeineKlasse.halloWelt ( ); // Ausgabe: Hallo Welt!
NamederKlasse
NamederProzedur
KeineParameter
Parameter
int zahl = 3;
// Verwendung der Funktion addiere
(inderFunktionaddierewird
int ergebnis = MeineKlasse.addiere ( zahl, 11 ); demParameter„a“derWert
NamederKlasse
NamederFunktion vonZahlunddemParameter
System.out.println(ergebnis); // Ausgabe: 14
„b“derWert11zugeordnet)
}
}
4
Java–Cheatsheet
InformatikVorkurs
Klassen,ObjekteundMethoden
EinfacheKlasse
Fahrzeug.java
public class Fahrzeug {
Klassenname
public String hersteller;
public String modell;
Attribute
public Fahrzeug () {
hersteller = "RWTH Motors";
modell = "SuperA";
}
BezeichnerderAttribute
Standard-Konstruktor
(keineParameter)
public void fahrzeugAusgeben() {
System.out.println(hersteller + " " + modell);
}
Methode
}
MeineKlasse1.java
public class HauptKlasse {
public static void main(String[] args) {
Fahrzeug f = new Fahrzeug();
new+Konstruktor,umObjektzuerzeugen
ObjektvomTypFahrzeugerstellen
Variabledeklarieren
f.fahrzeugAusgeben(); // Ausgabe: RWTH Motors SuperA
f.modell = "Karman";
MethodedesObjektsderKlasseFahrzeugaufrufen
VariabledesObjektsändern
f.fahrzeugAusgeben(); // Ausgabe: RWTH Motors Karman
}
}
5
Java–Cheatsheet
InformatikVorkurs
VererbungmitabstrakterOberklasse
Person.java
public abstract class Person {
AbstrakteKlasse
public String name;
public int alter;
Klassenname
Attribute
Konstruktor
public Person() {
name = "Max Mustermann";
alter = 38;
}
public void personenBeschreibungAusgeben(boolean nurNamenNennen) {
Bezeichnerder
System.out.println("Name: " + name);
if(!nurNamenNennen) {
Attribute
System.out.println("Alter: " + alter);
System.out.println("Beruf: " + beruf());
}
}
Methode
Deklarationeiner
abstraktenMethode
public abstract String beruf();
}
Student.java
public class Student extends Person {
KlasseStudentalsUnterklassederKlassePerson
KonstruktormitParametern
public Student(String name, int alter) {
this.name = name;
this.alter = alter;
}
BezeichnerderAttribute
Definitionderabstrakten
Methode
public String beruf() {
return "Student";
}
}
MeineKlasse2.java
public class HauptKlasse {
public static void main(String[] args) {
new+Konstruktor,umObjektzuerzeugen
Student s = new Student("Peter", 24);
ObjektvomTypStudenterstellen
Variabledeklarieren
System.out.println(s.personenBeschreibungAusgeben(true));
// Ausgabe: Name: Peter
}
}
6
Java–Cheatsheet
InformatikVorkurs
PlatzfüreigeneNotizen
Waswillmantun?
BeispielhafteUmsetzunginJava
7
Java–Cheatsheet
InformatikVorkurs
BereitgestellteBibliotheken
Eingabe
Eingabe.intEinlesen()
Liesteinenint-WertvonderKonsoleeinundgibtdiesenzurück.ImFalleeinerfehlerhaften
EingabewirddieZahl0zurückgeliefertundeineFehlermeldunginderKonsoleausgegeben.
double
Eingabe.doubleEinlesen()
Liesteinendouble-WertvonderKonsoleeinundgibtdiesenzurück.ImFalleeinerfehlerhaften
EingabewirddieZahl0.0zurückgeliefertundeineFehlermeldunginderKonsoleausgegeben.
String
Eingabe.stringEinlesen()
LiesteinenString-WertvonderKonsoleeinundgibtdiesenzurück.ImFalleeinerfehlerhaften
EingabewirddieleereZeichenkette""zurückgeliefertundeineFehlermeldunginderKonsole
ausgegeben.
char
Eingabe.charEinlesen()
Liesteinenchar-WertvonderKonsoleeinundgibtdiesenzurück.WirdmehralseinZeichen
eingegeben,sowirdnurdasersteZeichenberücksichtigt.ImFalleeinerfehlerhaftenEingabewird
dasleereZeichen'\u0000'zurückgeliefertundeineFehlermeldunginderKonsoleausgegeben.
String[] Eingabe.dateiInhaltEinlesen()
ÖffnetdenDatei-Öffnen-Dialog,welcherdenBenutzergenaueineDateiauswählenlässt.Nachdem
ÖffnenwirdderInhaltderDateiineinString[]-Arraygespeichertundzurückgegeben.IstdieDatei
leer,nichtlesbarodererfolgteinAbbruchwirdeinArrayderLänge0zurückgeliefert.
String[] Eingabe.dateiInhaltEinlesen(String dateipfad)
WiedateiInhaltEinlesen(),nurohneDatei-Öffnen-Dialog.HiermussmitdateipfadeinPfadzur
Dateiangegebenwerden.Windows-Nutzermüssendaraufachten,dass\(Backslash)innerhalb
einesStringsdurch\\dargestelltwerdenmuss.
int
Ausgabe
void
void
void
void
Ausgabe.arrayAusgeben(int[] array)
Gibtdasint-ArrayarrayaufderKonsoleaus.
Ausgabe.arrayAusgeben(double[] array)
Gibtdasdouble-ArrayarrayaufderKonsoleaus.
Ausgabe.arrayAusgeben(String[] array)
GibtdasString-ArrayarrayaufderKonsoleaus.
Ausgabe.arrayAusgeben(char[] array)
Gibtdaschar-ArrayarrayaufderKonsoleaus.
Ausgabe.inDateiSchreiben(String[] zeilen)
SpeichernderZeilenzeilenineineneueoderexistierendeTXT-Datei.EswirdeinDatei-SpeichernDialoggeöffnet.Gibttruezurück,wenndasSchreibenerfolgreichwar;andernfallsfalse.
boolean
Ausgabe.inDateiSchreiben(String[] zeilen, String dateipfad)
WieinDateiSchreiben(String[]),nurohneDatei-Speichern-Dialog.Hiermussmitdateipfadein
PfadzurneuenoderexistierendenDateiangegebenwerden.
boolean
Zufall
int
Zufall.zufaelligenIntWertGenerieren(int min, int max)
Lieferteinenzufälligenint-Wertderzwischenminundmaxliegt.
Zufall.zufaelligenDoubleWertGenerieren(double min, double max, int nkstellen)
Lieferteinenzufälligendouble-WertderzwischenminundmaxmitAnzahlanNachkommstellen
nkstellen.
int[]
Zufall.zufaelligesIntArrayGenerieren(int length)
Lieferteinint[]-ArrayderLängelength(lengthmussvomTypintsein)zurück,welcheszufällige
int-Wertevon0bis99enthält.
double[] Zufall.zufaelligesDoubleArrayGenerieren(int length)
Lieferteindouble[]-ArrayderLängelength(lengthmussvomTypintsein)zurück,welches
zufälligedouble-Wertevon0.0biskleiner100enthält.
double
8