Gutes Java-Tutorial gesucht

  • Ich möchte gerne ein bißchen Java lernen und bin jetzt auf der Suche nach einem guten Tutorial oder einem Buch. Ich habe es schon mit dem Handbuch der Java-Programmierung von Guido Krüger versucht, aber das scheint mehr ein Nachschlagewerk für Fortgeschrittene zu sein und ist imo nicht wirklich zum Erlernen der Sprache geeignet.

    Zu meinem Kenntnisstand: Abgesehen von QBasic (:) ) kann ich lediglich ein wenig Pascal, wobei können zu viel gesagt ist, und ein paar Brocken C++.

    Das Tutorial bzw. das Buch sollte also nicht zu sehr mit Fachausdrücken um sich werfen bzw. diese auch erklären.

    Kann mir jemand ein Buch oder ein Tutorial empfehlen?

  • Danke. Das Tutorial bei Gailer-net gefällt mir am besten, es setzt nicht allzu viel voraus:

    Zitat

    Sie haben vermutlich einen Computer vor sich. Der Prozessor, Hauptspeicher und sekundäre Speicher sind innerhalb der Systemeinheit. Dies ist der Metallkasten, der manchmal als "der Computer" bezeichnet wird. Der Monitor (der fernsehähnliche Bildschirm) ist ein Ausgabegerät.

    :D
    Ich werde mich mal näher damit befassen.

    argu18
    Das Handbuch ist als Ergänzung zu einem Tutorial sicher gut. Aber ich suche eben eher eine Schritt-für-Schritt-Anleitung. Was bringt mir z.B. ein Hello-World-Listing, wenn ich die Bedeutung des verwendeten Syntax anschließend im ganzen Buch suchen muss? Oder: Public static void main(String[] args) wird in so ziemlich jedem Beispiel benutzt, aber wozu es dient erfahre ich nur andeutungsweise. Oder : Zur case-Schleife gibt es nur ein Beispiel, wie man es nicht machen soll.
    Oder: "Der Syntax der If-Anweisung ist if (ausdruck)
    anweisung; " Warum ist "anweisung" nicht in geschweiften Klammern? Das ist für jemanden, der ein wenig über Java weiß selbstverständlich, aber woher soll das ein Anfänger wissen?

    Man kann Java mit diesem Buch lernen, aber zumindest ich kann es nicht nur mit diesem Buch.

  • Zitat von zebbo

    Das Handbuch ist als Ergänzung zu einem Tutorial sicher gut. Aber ich suche eben eher eine Schritt-für-Schritt-Anleitung.


    Es ist ja eine Schritt-für-Schritt-Einleitung...
    Um etwas zu zeigen, muss man aber erst mal einige unbekannte Dinge einsetzen. Warum will ich dir im Folgenden kurz erklären...

    Zitat

    Public static void main(String[] args) wird in so ziemlich jedem Beispiel benutzt, aber wozu es dient erfahre ich nur andeutungsweise.


    Jedes Programm beginnt mit

    Code
    public static void main (String [] args)


    Um nun die einfachsten Dinge selbst auszuprobieren muss man das einsetzen. Verstehen indes kann man es erst, wenn man relativ viel Wissen über Java oder objektorientiert Programmierung im Allgemeinen hat. Es ist weder sinnvoll noch möglich, vor dem Einsatz dieser Zeile die Bedeutung mehr als andeutungsweise zu erklären.
    So müsste man, um die Bedeutung von public zu verstehen wissen, was Zugriffsrechte und Sichtbarkeiten sind. Das wiederum kann man erst verstehen, wenn man weiß was packages sind und welche Möglichkeiten es grundsätzlich außer public noch gibt. static hat etwas mit Klassenmethoden zu tun. Um zu wissen, was das bedeutet müsste man bereits Objekte und Klassen genau erklärt haben. void ist der Rückgabetyp. Wie soll man nun in einem ersten Beispiel ohne jemals von weiteren Methoden und dem Aufbau von Klassen geredet zu haben etwas über Rückgabetypen sinnvoll darstellen? main ist einfach der Methodenname, da gibt's nichts zu erklären, außer dass die Methode main bei ausführbaren Klassen immer beim Aufruf ausgeführt wird. Aber woher sollte man wissen, dass es auch nicht ausführbare Klassen gibt, wenn man gerade erst anfängt? Warum wird String groß geschrieben? Um das zu verstehen muss man wissen, dass es primitive Datentypen gibt, die man klein schreibt, String aber kein primitiver Datentyp ist, auch wenn es einige Ansätze in Java gibt, die String als primitiven Datentyp behandeln. Für einen Anfänger darauf einzugehen sicher nicht sinnvoll. Was sollen die [] bedeuten? Soll man einem Anfänger, der noch nicht mal eine Zeile Code geschrieben hat, wirklich erklären, dass das ein Array kennzeichnet und was ein Array ist, wie man auf die einzelnen Elemente zugreift etc?

    Also kurz gesagt: Allein um diese Zeile, die nunmal in jedem Programm gebraucht wird, auch nur ein bißchen mehr als andeutungsweise zu erklären, müsste man schon das halbe Buch kennen. Aber 99% der Leute hätten sicher keine Lust, diese ganze Theorie im Voraus zu lesen, bis sie überhaupt ihr erstes Kleinst-Übungs-Programm schreiben könnten.
    Man muss einfach erstmal hinnehmen, dass etwas so ist. Warum es so ist erfährt man im weiteren Verlauf des Buches.

    Zitat


    Was bringt mir z.B. ein Hello-World-Listing, wenn ich die Bedeutung des verwendeten Syntax anschließend im ganzen Buch suchen muss?


    Wenn du das denkst, dann hast du den Aufbau des Buches schlicht missverstanden. Es ist nicht das Ziel, alle Einzelheiten eines Listings zu kennen, wenn diese noch nicht besprochen wurden. Das Buch setzt keine Vorkenntnisse voraus (ich hatte selbst auch keine). In einem Beispiel musst du dich immer auf den Aspekt konzentrieren, der gerade behandelt wird. Es ist übrigens nur am Anfang so, dass unbekannte Dinge benutzt werden, weil ohne die kein lauffähiges sinnvolles Programm möglich wäre.

    Zitat


    Oder: "Der Syntax der If-Anweisung ist if (ausdruck)
    anweisung; " Warum ist "anweisung" nicht in geschweiften Klammern? Das ist für jemanden, der ein wenig über Java weiß selbstverständlich, aber woher soll das ein Anfänger wissen?


    Wieso das nicht in {} sondern in () steht? Nun, weil es einfach so ist. Weil sich die Entwickler bei Sun gedacht haben, dass sie das jetzt einfach mal so machen... Da gibt es nichts großartiges drüber zu wissen...

    Zitat


    Man kann Java mit diesem Buch lernen, aber zumindest ich kann es nicht nur mit diesem Buch.


    Wenn du nicht mit dem Buch zurecht kommst, dann will ich dich natürlich auch nicht vom Gegenteil überzeugen :wink: Ich wollte nur angemerkt haben, dass du den Aufbau des Buches IMHO grundsätzlich falsch verstanden hast. Und dass du in keinem Tutorial das von dir geforderte so finden wirst, weil es einfach nicht möglich ist, gleich zu Anfang alles auf einmal erschöpfend zu erklären...

    Und jetzt noch viel Spaß beim Java lernen :wink:

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8 ) Gecko/20051025 Firefox/1.5

  • Zitat von argu18

    "Anweisung" steht in gar keinen Klammern, du meinst wohl "Ausdruck", was ich ja auch nicht bemängelt habe. Die Anweisung steht aber immer in geschweiften Klammern. ;) Imo müsste es so aussehen:

    if (Ausdruck)
    {Anweisung;}

    Ansonsten: Kann schon sein, dass ich den Aufbau falsch verstanden habe, aber in diesem Fall mag ich den Aufbau auch nicht. Ich behaupte ja nicht, dass das Buch schlecht ist oder so, nur ich persönlich komme damit nicht so gut zurecht.

  • Zitat von zebbo


    "Anweisung" steht in gar keinen Klammern, du meinst wohl "Ausdruck", was ich ja auch nicht bemängelt habe. Die Anweisung steht aber immer in geschweiften Klammern. ;) Imo müsste es so aussehen:

    if (Ausdruck)
    {Anweisung;}


    Oh, ich hatte dich falsch verstanden.
    Eine Anweisung steht nicht in geschweiften Klammern. Die geschweiften Klammern dienen zur Blockbildung, um mehrere Anweisungen zusammenzufassen.
    Nach der Java Sprachsyntax kommt nach einer if-Abfrage eben immer genau 1 Anweisung.
    Nun ist es aber so, dass man in vielen Fällen natürlich mehrere Anweisungen nacheinander ausführen will. Dazu dienen die {} um diese zu klammern, so dass sie nach außen hin wie eine einzige Anweisung auftreten.
    Übrigens erschöpfend erklärt im auf javabuch.de ;)

    Zitat

    Ansonsten: Kann schon sein, dass ich den Aufbau falsch verstanden habe, aber in diesem Fall mag ich den Aufbau auch nicht. Ich behaupte ja nicht, dass das Buch schlecht ist oder so, nur ich persönlich komme damit nicht so gut zurecht.


    Aber das wollte ich ja gerade darlegen: Grundsätzlich sind praktisch alle Tutorials für Java so aufgebaut, da es nicht anders geht, wenn man nicht die erste Hälfte des Buches mit reiner Theorie ohne ein Anwendungsbeispiel füllen will :wink:
    Du solltest also bei jedem Tutorial nicht mit der Einstellung rangehen, gleich alles in allen Einzelheiten verstehen zu müssen, wenn es erkennbar noch nicht behandelt wurde. Mehr wollte ich ja gar nicht gesagt haben :wink: Ich halte auch javabuch.de nicht für der Weisheit allerletzen Schluss und für das tollste und beste was es gibt. Es ging wie gesagt nur um die grundsätzliche Herangehensweise.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8 ) Gecko/20051025 Firefox/1.5