JAVA Einstieg: Jemand Tipps??

  • #1
J

JediMB

Bekanntes Mitglied
Themenersteller
Dabei seit
04.04.2003
Beiträge
244
Reaktionspunkte
0
Hallo zusammen!

Ich hab gerade damit begonnen, mir JAVA zu Gemüte zu führen...

Bisher hab ich viel mit HTML gemacht, ein kleines bißchen JavaScript (aber eigentlich nur vorhandene Scripts auf meine Bedürfnisse angepaßt), mit Pascal hab ich mal ein wenig gemacht und C hab ich vor ner Weile angefangen, damit bin cih soweit schon ganz fit.

Jetzt kämpfe ich mich gerade durch JAVA in 21 Tagen und blicke die Befehle, Variablentypen und so weiter auch schon, aber ich hab echte Probleme mit der Struktur.

Bei C z.B. habe ich meine main() Funktion, die dann andere Funktionen aufruft. Alles läuft richtig nett und verständlich linear ab.

Wie läuft das bei Java?

In den Beispiel Applets mußte ich schon ganz schön rumtesten, bis ich wußte, wo ich was ändern muß, damit überhaupt etwas passiert...

Da gibt's ja dann die init() Funktion und die paint() Funktion und diverseste andere, die offenbar alle mehr oder weniger gleichzeitig ausgeführt werden oder zumindest keinen speziellen Aufruf durch eine Hauptfunktion benötigen...

Und wie das mit den Threads läuft, das hab ich schon mal überhaupt nicht geblickt...


Hat da jemand mal eine Quelle, die das etwas klarer macht?
Oder ein paar hilfreiche Worte für mich?

Danke schon mal...

MfG
 
  • #4
Ich danke Euch!

Der Galileo-Link ist schon mal sehr klasse! Ziemlich ausführlich, da hab ich ne Menge zu lesen, aber dafür auch sehr gut zu verstehen.

Und selfJAVA hab ich mir jetzt noch nicht genauer angesehen, aber wenn's so gut ist, wie selftHTML, dann bin ich damit schon sehr glücklich, denke ich.

MfG
 
  • #5
Also, wo soll man da anfangen?

ein paar generelle Tips:

1. schreib an Anfang keine Applets sondern Programme (Applets habe die Einschränkung, dass sie im Browser laufen sollen, und die dafür vorgesehene Sandbox ist kleiner)

2. bei Java Programmen ist immer die public static void main(String[] args) die Startfunktion. Diese wird von der Java Umgebung (JDK oder JRE gerufen)

3. das gesamte Zeichen (also, paint(), repaint() usw.) wird im Idealfall von Java selbst verwaltet und man braucht sich nicht darum zu kümmern

4. programmiere am Anfang lieber mit der Swing (Oberflächen-)Bibliothek herum. Erstelle kleine Fenster, wo man was eingeben kann, und wo dann was passiert (z.B. einen Taschenrechner). So lernt man relativ schnell, wofür Java geeignet ist und wie es prinzipiell funktioniert.

Viel Spass damit
VoiD (der das Kartenspiel Uno in Java programmiert hat) und ein Chat Programm (http://www.void-world.de/java/java.html
 
  • #6
Kleiner Tipp:

solltest du in Erwägung ziehen, dir irgendwann mal ein Buch zu kaufen, kann ich dir nur den Rat geben Finger weg von Data Becker oder Markt&Technik. Ist der letzte Sch***. Ich bevorzuge da eher die Verlage O'Reilly, Addison Wesley oder Prentice Hall...
 
  • #7
Hmm. Also ich verstehe nicht wieso Du Probleme mit der Struktur hast, wenn Du schon mal in C programmiert hast.
Java ist doch sehr logisch und einfach aufgebaut.

Vielleicht solltest Du zu Anfang wirklich keine Applets programmieren. :)

Ich kann dir folgende Referenz empfehlen, wenn Du mal was nachschlagen willst. Da stehen so ziemlich alle Klassen mit Methoden usw. drinne: http://www.amazon.de/exec/obidos/ASIN/3826607163/qid=1070972248/sr=1-1/ref=sr_1_26_1/028-3368515-6593322

Zum Programmieren kann ich dir folgendes kostenloses Programm empfehlen: http://www.eclipse.org
Lade dir dort unter download > germany > (http) SunSite CEUR > Stable Builds 3.0M5

Eclipse ist so ziemlich das Beste Programm zur Programmierung was es gibt. Schade das es nur für Java entwickelt wurde.

Was Java an sich an geht, vielleicht ein par VerständnisTips:
- Everything is an Object. Das heißt, alles in Java ist ein Objekt. Also nicht nur das was Du als Objekt deklariert hast, wie in C. Das einzige was keine wirklichen Objekte sind, sondern primitive Datentypen ist sowas wie int, double, ...
Bspw. ist die Ausgabe auf der Standardkonsole mit dem Befehl System.out.println() ein Aufruf der static Klasse System. Die Punkte trennen (wie gewohnt) den Methodennamen von dem Objekt(Klassen)namen.

- In Java sollte jede Klasse seine eigene Datei haben, die den Namen der Klasse trägt.
Eine Klasse muss die main-Methode enthalten um das Programm starten zu können.

- In dem Parameter args der, der Main-Methode übergeben wird, stehen Daten die beim Programm aufruf übergeben wurde. Also wenn Du bspw. einen Dateinamen übergeben musst, dann steht der dann in args[0].

- Lokale Variablen innerhalb der Methoden müssen mit einem Wert initialisiert werden (also mit null oder 0 oder sonst einem Wert). Bei globalen Variablen (also in der Klasse, außerhalb der Methoden) werden sie automatisch initialisiert.

- In Java gibt es keine Pointer! Nur in einer Sache benutzt Java Pointer und mit denen hat der Programmierer selbst nichts am Hut, nämlich bei Objekten. Es werden normal immer nur Referenzen auf Objekte übergeben bzw. in einem Array, Vector, ... stehen nur Pointer auf die Speicherstelle an der das Objekt steht.

- In Java ist es nicht möglich eine Klasse von mehreren Klassen erben zu lassen. Immer nur von einer einzigen Klasse, aber dafür u.U. von mehreren Schnittstellen (interface) die von der entsprechenden Klasse dann implementiert werden müssen.

- Java castet nicht automatisch einen Wert um in einen anderen. Bsp.: Bei C (soweit ich mich erinnere) ist es möglich einer int-Variablen eine double-Variable zuzuweisen und C schneidet automatisch die Kommastellen ab. Sowas geht in Java nicht (weil es einfach unsauber ist, irgendwann blickt keiner mehr durch). Man muss also den Wert (von Hand) casten, was wie folgt geht:
Code:
(<Zieltyp>)<Variablenname>

Bsp.:
int zahl;
double kommazahl = 3.141;
zahl = (int)kommazahl;

Wert in->Zahl' --> 3

Wer, dass als negativ ansieht, der kann sich dafür über den garbage collector freuen, der die Objekte die nicht mehr verwendet werden einsammelt. Er macht also den Speicher frei, wenn ein Objekt nicht mehr benötigt wird. Man muss sich also in keinsterweise um Objekte kümmern die man bspw. nur zum Zwischenspeichern verwendet hat.

- Und ein großer Vorteil ist (neben der Plattformunabhängigkeit), dass es in Java eine Unmenge von Klassen in den Standardbibliotheken gibt, die einem das Leben leichter machen! :)

Ich hoffe ich konnte ein wenig helfen, ansonsten steh ich gerne für Fragen zur Verfügung. :)

Gruß
Thrash


Ps.:
Ach ja noch was zu den Applets.
Applets sind in dem Sinne keine richtigen Java Programme.
Es ist quasi eine Untermenge der Sprache Java, eine weitere Anwendungsebene. Java lässt sich genauso wie C++ einsetzen.
 
  • #9
Du hast nicht zufällig ein spezielles JSP Tool auf Lager??

Hab auf den angegebenen Seiten leider nix gefunden...

MfG
 
  • #11
Auch wenn der Thread schon älter ist, vielleicht interessiert den einen oder anderen ja das geniale Werk von Bruce Eckel - Thinking In Java und Thinking in C++
http://mindview.net/Books/TIJ/DownloadSites
Ich habe die erste Version 1999 ausgiebigst für meine Diplomarbeit genutzt.

Eddie
 
  • #12
Es gibt nun eine OpenSource-basierte und kostenlose Lösung für einen unkomplizierten Einstieg in die Java-Web-Entwicklung. Der sogenannte Java Web Starterkit beinhaltet Java, Eclipse, Tomcat, andere Tools plus Bespiele.
http://w4toolkit.de/de/indexc34b.html?bsID=132
 
  • #13
eclipse ist echt gut
 
  • #14
Damit hab ich begonnen:

import java.io.*;
public class Taschenrechner {

public static void main(final String[] args) throws IOException {
BufferedReader eing = new BufferedReader(new InputStreamReader(System.in));
double zahlen[] = new double[2];
int rechenZuweisung = 0;
System.out.println(Taschenrechner:);
System.out.println();
for(int i= 0;i<2;i++) {
System.out.print(Geben Sie die +(i+1) + Zahl ein, die zu berechnen ist: );
double j=Double.parseDouble(eing.readLine());
zahlen=j;
//System.out.println(zahlen ); //Kontrollausgabe
}
System.out.println();
System.out.println(Wollen Sie die Zahlen...?);
System.out.println(1 -> Addieren);
System.out.println(2 -> Subtrahieren);
System.out.println(3 -> Multiplizieren);
System.out.println(4 -> Dividieren);
System.out.println();
System.out.print(Waehlen Sie die Rechenart: );
int i=Integer.parseInt(eing.readLine());
rechenZuweisung = i;
System.out.println();
//System.out.println(rechenZuweisung ); //Kontrollausgabe

if(rechenZuweisung == 1) {
System.out.println(Ergebnis: +(zahlen[0]+zahlen[1]));
}
if(rechenZuweisung == 2) {
System.out.println(Ergebnis: +(zahlen[0]-zahlen[1]));
}
if(rechenZuweisung == 3) {
System.out.println(Ergebnis: +(zahlen[0]*zahlen[1]));
}
if(rechenZuweisung == 4) {
System.out.println(Ergebnis: +(zahlen[0]/zahlen[1]));
}
if(rechenZuweisung >4) {
System.out.println(Fehlerhafte Eingabe - Starten Sie das Programm neu! );

}
}
}
 
Thema:

JAVA Einstieg: Jemand Tipps??

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben