Java für Anfänger Teil 1: Intro Programmierkurs 11.-15.10.2010 Manfred Jackel 1
1. Handwerkszeug Eclipse Workbench mit Java-Compiler Java Runtime Environment
Notwendige Software
Java Runtime Environment JRE
6 von http://java.sun.com/javase/downloads/index.js p ca. 14 MB
Nur JRE, nicht JDK, SE oder EE (schadet nicht, braucht sehr viel Platz)
Eclipse Entwicklungsumgebung Eclipse
IDE for Java Developers ca. 78 MB www.eclipse.org
In dieser Reihenfolge installieren
Download JRE
Software hat Installer
Download Eclipse
Kein Installer, In Verzeichnis entpackenr
Eclipse.exe starten …
File New
Java Project
Eclipse.exe starten …
File New
Java Project
Exklusives Verzeichnis wählen
Eclipse starten …
File New
Java Project
Projektdialog ausfüllen
Frei wählbaren Projektnamen eingeben, z.B. „WelcomeProject“ Sonst die Vorgabewerte belassen Finish drücken
Neue Klasse einfügen
Projekt markieren, in dem die Klasse erzeugt werden soll File New
Class
Klassen-Dialog ausfüllen
Einen Klassennamen in das Feld „Name“ eingeben: Welcome Konvention: Klassenname beginnt mit Großbuchstabe main-Methode für ausführbare Klassen Sonst Vorgaben belassen
public static void main(String[] args)
Einsprung ins Programm
Kontextsensitive Hilfe
Die Klasse System
Die Klasse System beinhaltet mehrere nützliche Felder und Methoden.
Strings=Zeichenketten
“Welcome to Java“ ist ein Stringliteral
Workspace Editor
console
2 ist Zahlliteral, zwei ist Zahlwort, “zwei“ und “2” sind Stringliterale
System.out.print (22);
System.out.print( “zweiundzwanzig“);
Ausgabe: zweiundzwanzig
System.out.print( 2+“und“+20);
Ausgabe: zweiundzwanzig
System.out.print( “zwei“+“und“+“zwanzig“);
Ausgabe: 22
Ausgabe: 2und20
System.out.print(20+2);
Ausgabe: 22
Was Eclipse für uns gemacht hat:
Im workspace-Verzeichnis:
Ein Unterverzeichnis „WelcomeProject“
Im Unterverzeichnis WelcomeProject
Ein Unterverzeichnis „src“ Darin die Datei „Welcome.java“ mit Quellcode Ein Unterverzeicnis „bin“ Darin die Datei „Welcome.class“ mit Bytecode
Ohne Eclipse:
Übersetzen mit Befehl: javac Welcome.java Ausführen mit Befehl: java Welcome.class
Java-Dateien werden ín Bytecode übersetzt. Die Java Virtual Machine führt diesen Bytecode dann aus.
Java-Architektur
systemunabhängig .class
.java JavaProgramm (Textdatei)
Java Byecode
Ausführen
JavaCompiler
Java Virtual Machine
Betriebssystem
Ausführen
systemabhängig
Java von der Kommandozeile
javac Java-
Compiler
java Bytecode-
Interpreter
nur mit JDK
2. Stoff
Java- Geschichte
Entwickelt 1995 für Sun Microsystems, Vorläufer Oak (Heimelektronik), James Gosling u.a. Push durch Applet für NetScape Mosaic Browser JDK 1.0 1996 Java Development Kit JDK 1.1 1997 JDK 1.2 1999 ab hier Java 2 Platform JDK 1.3 2000, JDK 1.4 2003 JDK 1.5 2004: J2SE 5.0 Java 2 Standard Edition 5.0 JDK 1.6 2006
Begriff Objekt (Wikipedia)
8.10.2009
Objekt bezeichnet: allgemein etwas Unspezifiziertes, siehe Sache oder Gegenstand im Sinne der Dialektik das, worauf ein Subjekt seine beobachtende, sinnliche, empirische und praktischverändernde Aktivität richtet, siehe Objekt (Philosophie) ein Gegenstand mathematischer Untersuchungen Mathematisches Objekt
Begriff Objekt (Wikipedia)
ein Satzglied, siehe Objekt (Grammatik) einen Himmelskörper, siehe Astronomisches Objekt eine Einheit in einem Geoinformationssystem, siehe Geoobjekt eine Einheit in der Programmierung, siehe Objekt (Programmierung) eine bestimmte Art künstlerischer Werke, siehe Objektkunst einen selbstständigen Betrieb der ehem. Wismut AG
Objekt (Programmierung Wikipedia) Ein Objekt bezeichnet … ein Exemplar eines bestimmten Datentyps oder einer bestimmten Klasse (auch "Objekttyp" genannt). Im Kontext der objektorientierten Programmierung werden Objekte auch als „Instanzen einer Klasse“ bezeichnet. Objekte sind also konkrete Ausprägungen („Instanzen“) eines Objekttyps. Die Klasse beschreibt das Muster aller Objekte, die zu ihr gehören.
Einfaches Objekt Beispiel Person1: Hans Dampf 01.02.1990 Person2: Lieschen Müller 01.12.1991 Muster: Vorname Nachname (Geburts-)Datum Klasse Person
Person1
Person2
Vorname
“Hans“
“Lieschen“
Nachname
“Dampf“
“Müller“
Geburtstag
01.02.1990
01.12.1991
Objekt Instanz
Klassendefinition Person
Objekt Beispiel Klasse Klasse Klasse
class Person { String vorname; String nachname; Datum gebdatum; }
Objekt Instanz
Klasse Person
Person1
Person2
Vorname
“Hans“
“Lieschen“
Nachname
“Dampf“
“Müller“
Geburtsdatum
01.02.1990
01.12.1991
Klassendefinition Person
Objekt Beispiel Klasse Klasse Klasse
class Person { String vorname; String nachname; Datum gebdatum; }
Objekt Instanz
Person1
Person2
Hans
Lieschen
Dampf
Müller
01.02.1990
01.12.1991
Objekt (Programmierung Wikipedia) Jedes Objekt hat einen Zustand, ein Verhalten und eine Identität. Der Zustand des Objekts setzt sich aus seinen Attributen und Verbindungen zu anderen Objekten zusammen. Das Verhalten des Objekts wird durch die Menge seiner Operationen ("Methoden") beschrieben. Die Identität unterscheidet ein Objekt von anderen Objekten, auch wenn diese anderen Objekte den gleichen Zustand und das gleiche Verhalten haben.[
Objekt, erweitertes Beispiel Das Verhalten des Objekts wird durch die Menge seiner Operationen ("Methoden") beschrieben.
Alter = 18
Alter = 20 Person1
Person2
“Hans“
“Lieschen“
“Dampf“
“Müller“
01.02.1990
01.12.1991
Objekt erweitertes Beispiel class Person { String: vorname; String: nachname; Datum: gebdatum; int alter() { … } }
Programm zur Berechnung
Person Vorname Nachname Geburtstag int alter()
Person1
Person2
“Hans“
“Lieschen“
“Dampf“
“Müller“
01.02.1990
01.12.1991
Objekt erweitertes Beispiel
Klasse für Datum class Datum { int jahr; int monat; int tag; }
30
Methode: Erweitertes Beispiel int alter() { Datum heute = new Datum(); heute.jahr=2010; heute.monat=10; heute.tag=11; int grob = heute.jahr - gebdatum.jahr; if (heute.monat > gebdatum.monat) return grob - 1; if (heute.monat == gebdatum.monat && heute.tag > gebdatum.tag) return grob - 1; return grob; Demo } Altersberechnung
Java Eigenschaften
Java-Verwandte: C++, C#, Objective C, Smalltalk, Delphi hat Klassen und Objekte Vergleichsweise einfach Interpreter-gestützt (VM) Robust (z.B. keine Pointer-Arithmetik) Architekturneutral (nicht OS- oder rechnerspezifisch) Portierbar (Bytecode) Nebenläufig
Java Runtime Environment C1.java C2.java
CN.java
Java-Compiler C1.class
C2.class
CN.class
Java Virtual Machine Betriebssystem Hardware