Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Einsteigerbuch / Tutorial für Java am PC + Android + Eclipse
ich suche ein (oder zwei) Einsteigerbuch / Tutorial um Java zu lernen. Bis jetzt habe ich mit VBA unter Access 2003/2010 ein wenig was "programmiert", wobei dies eher nach Codestücken suchen und diese zusammensetzen war. Bei Java möchte ich gerne systematischer es erlernen.
Mein erstes Ziel wäre es, unter Java ein Lern- / Quizprogramm zu programmieren, welches ich am PC (Linux & Windows 10) und unter Android benutzen kann, deshalb meine Frage an die Experten aus dem Forum nach einem Buch / Tutorial, welches Java am PC und unter Android behandelt - am Besten ein Code für beide Systeme auch für eine gemeinsame GUI.
Als Entwicklungsumgebung möchte ich mit Eclipse arbeiten, da wir dies bei uns in der Arbeit haben und ich mittelfristig dort was mit Java machen möchte. Mit Eclipse habe ich noch nicht gearbeitet, weshalb es mir am Liebsten wäre, wenn das Java-Buch/-Tutorial mit Eclipse arbeitet.
Ich hoffe auf Eure Ratschläge und Tips und danke im Voraus!
Aus eigener Erfahrung und vor allem, wenn es sich um den Einstieg in die Programmierung handelt, würde ich erst mal dazu raten auf eine grafische Benutzeroberfläche zu verzichten und nur auf der Konsole zu programmieren. Dort kann man sich zunächst voll auf die Sprache konzentrieren ohne sich auch noch um die Komplexität einer GUI kümmern zu müssen.
Ich finde es ganz gut, weil es zu den einzelnen Themen auch Übungen anbietet, allerdings kenne ich auch keine anderen Online-Tutorials zum Vergleich. Allerdings behandelt es nur die grundlegende Sprache und etwas Objektorientierung und ist nicht auf dem aktuellsten Stand. Für den Anfang ist es aber brauchbar und umsonst.
Als Buch hatte ich die "Java-Insel" von Galileo (gibts auch online kostenlos), aber ich finde es zum Einstieg für blutige Anfänger nicht ganz geeignet, aber es bietet eine ziemlich komplette Übersicht über die Sprache. Kennt man schon andere Programmiersprachen, dann ist es gut einsetzbar.
Was meine Vorredner gesagt haben, unterstreiche ich voll und ganz. Höre auf sie. Nur eine Ergänzung: Ich habe das Gefühl, dass Du für den Anfang zu viel willst. Das erlebe ich immer wieder bei meinen Musikschülern aber auch bei Programmier-Anfägern: Man kann das Ausmaß dessen, was da vor einem liegt, noch nicht ansatzweise abschätzen und somit unterschätzt man es mangels besseren Wissens. Fang mit "Hello, World" an. Dann lerne die Grundbegriffe von objektorientierter Programmierung (Klassen, Objekte, Interfaces, Vererbung, ........), das wird schon einige Zeit in Anspruch nehmen. Dann pack viel Zeit, Ausdauer, Geduld und Leidensfähigkeit ein, beschäftige Dich mit GUI (AWT, Swing, JavaFX), beschäftige Dich mit den Untiefen der grafischen Oberflächen, Listener, Events, bliblablubb, die Monate gehen ins Land, DANN schau Dir mal an, wie man Programme auf ein Android-Pad oder -Handy bekommt, das mit GPS, Sensoren und Glump und Graffel wieder anders tickt als ein PC.
Korrigiert mich, wenn ich falsch liege, aber das Buch, das alles auf einmal liefert, kenne ich bisher noch nicht. Ich denke, das würde den Leser ohnehin überfordern oder hunderttausend Seiten dick sein.
Herzlichen Gruß
Goldi
Geh einfach davon aus, dass es sich um zwei völlig verschiedene Dinge handelt.
Nur weil die Sprache die gleiche ist, bedeutet das noch lange nicht, dass das übersetzte Programm auf verschiedenen Systemen ausführbar ist und das gleiche Ergebnis liefert.
Das fängt schon damit an, dass unter Android der Programmeinstiegspunkt nicht durch eine main-Methode gekennzeichnet wird und hört nicht damit auf, dass Android eine andere virtuelle Maschine verwendet.
Kleiner Nachtrag zu meinem Post und damit nicht alles nach "das geht doch nicht" klingt:
Du solltest wie gesagt nicht mit dem Anspruch dran gehen, alles auf einmal zu lernen. Es geht viel mehr um den richtigen Einstieg, um sich dann Meilenstein für Meilenstein fortzubewegen. Eines Deiner Ziele ist es also, Apps für Androids schreiben zu lernen. Das Buch "Android-Apps entwickeln für Einsteiger" von Uwe Post wirbt damit, dass der Leser keinerlei Programmier-Vorkenntnisse benötigt und liefert einen "Crashkurs zu Java und objektorientierter Programmierung". Du wirst dann noch keine genialen PC-Anwendungen mit grafischer Oberfläche schreiben können, aber wenn Du einmal durch einen der Haupteingänge das Java-Gebäude betrittst, siehst Du ja, welche Türen es im Inneren wiederum gibt und durch welche Du weiter gehen willst. Und ... nimm wie gesagt viel Zeit und Geduld für die Reise mit.
Ich habe das Buch gelesen und Eins steht fest: ohne Grundkenntnisse endet es beim Abtippen und kaum was verstehen. Der Autor macht eine Version, eine recht rudimentäre wie ich finde, eines Spiels und erläutert etwas, mehr nicht. zu dem ist die Buchführung verbesserungswürdig! Hier und da könnte der Autor es übersichtlicher gestalten.
Wenn ich keine Grundkenntnisse hätte, wäre ich aus dem Buch nicht wirklich schlauer geworden.
Ok, ich sollte nicht empfehlen, was ich nicht selbst gelesen habe . Danke für den Einwand. Dann doch "Hello World": Mir hat am meisten das "Handbuch der Java-Programmierung" von Guido Krüger und Thomas Stark gebracht. Da steht nix zur App-Entwicklung drin, aber vor der App-Entwicklung sollte man ja ein paar Grundlagen erst mal beherrschen. Das Schöne ist: Du kannst zumindest die 7. Auflage, die für den Anfang erst mal mehr als ausreichend ist, kostenlos als HTML-Version haben: www.javabuch.de. Es gibt auch eine 8. Auflage zu Java 8, was ein kleiner Quantensprung war (insbesondere Lamda-Ausdrücke). Aber da scheints im Buchhandel nur gebrauchte Ware zu Wucherpreisen zu geben (250 €) - was ist da passiert, weiß das jemand?
Hallo und danke an alle für Eure Tips und Ratschläge.
Wie im Eingangsbeitrag geschrieben ist mein erster Meilenstein ein kleines Lern- / Quizprogramm, was ich am PC und unter Android nutzen kann - z.B. zum Fremdsprache lernen. Dafür ist keine High-End-GUI nötig, aber eine einfache GUI mit Buttons wäre schon ganz gut.
Ideal wäre natürlich in Code für alle Systeme (Linux, Win, Android), aber nachdem was ihr geschrieben habt, ist das nur bedingt möglich.
Zumindest wäre es toll, wenn ich die vom Lern- / Quizprogramm genutzte Datenbasis (eine Datei oder Datenbank) schnell und einfach zwischen PC und dem Smartphone austauschen kann um am jeweils anderen System das Lern- / Quizprogramm mit den aktuellen Daten gleich weiter nutzen zu können.
Geh einfach davon aus, dass es sich um zwei völlig verschiedene Dinge handelt.
Nur weil die Sprache die gleiche ist, bedeutet das noch lange nicht, dass das übersetzte Programm auf verschiedenen Systemen ausführbar ist und das gleiche Ergebnis liefert.
Das fängt schon damit an, dass unter Android der Programmeinstiegspunkt nicht durch eine main-Methode gekennzeichnet wird und hört nicht damit auf, dass Android eine andere virtuelle Maschine verwendet.
Und ich dachte, es gibt einen Java-Code, der von der jeweiligen virtuellen Maschine fürs jeweilige Betriebssystem übersetzt wird, aber sonst ginge ein Code für alles.
Wo es natürlich Unterschiede gibt sind die systemspezfischen Dinge wie Wisch-Steuerung oder Lagesensor, den nur das Smartphone hat. Aber für mein erstes Ziel brauche ich zumindest den Lagesensor nicht.
Nicht ganz. Quelltext wird in Bytecode übersetzt, der dann von der jeweiligen VM (die für das Zielsystem geschrieben ist) ausgeführt wird. Allerdings verwendet Android eine VM, deren Bytecode nicht zur Java-VM kompatibel ist.
Nochmal: es sind zwei völlig verschiedene Dinge. Für Android brauchst Du eine bestimmte Paketstruktur, es muss ein Manifest geben, es wird ein apk statt einem jar erzeugt, die apk muss irgendwann signiert werden, es gibt Berechtigungen, die im Manifest angegeben werden müssen, Du musst Berechtigungen vom Benutzer abfragen, es gibt Activities, Intents, Services usw. usw.
Was gleich ist, ist die Syntax/Grammatik der Sprache "Java" und ein paar APIs.