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.
Bin Programmieranfänger, habe davor schon C versucht zu lernen. Bin da wesentlich weiter als mit Java gekommen. Denkt ihr das ich einfach das falsche Buch genommen habe: "Java ist auch eine Insel 7" von GalileoComputing, weil dort ist es mir einfach zu viel Text und schlechte Gliederung
Kann deshalb jemand ein kostenloses EBook empfehlen welches nicht so viel Text hat und mehr Wert auf Praxisbeispiele legt? Oder ist Java allgemein komplizierter als C und es gibt kein gutes Buch dafür?
Also wir haben in der Schule das Buch "Java lernen mt BlueJ". Ich finde, um einen Einstieg zu finden ist das Buch eigentlich ganz gut. Viele Aufgaben drin, die man auf jeden Fall machen sollte. Ich kam damit zurecht, obs alle tun, weiss ich natürlich nicht.
Ich finde "Java ist auch eine Insel" prinzipiell nicht schlecht, finde aber auch, daß man textmäßig etwas erschlagen wird. Meine Empfehlung ist daher meist www.javabuch.de (wie auch schon von Hobbit genannt)
java ist manchmal etwas komplex wenn man von einer anderen sprache kommt, da man oft nicht versteht warum etwas so gemacht wird.
viele php programmierer haben probleme mit der typsicherheit, viele c programmierer haben probleme mit der starken objektorientierung.
wenn man sicher aber mal dran gewöhnt hat lernt man es lieben.
java ist manchmal etwas komplex wenn man von einer anderen sprache kommt, da man oft nicht versteht warum etwas so gemacht wird.
viele php programmierer haben probleme mit der typsicherheit, viele c programmierer haben probleme mit der starken objektorientierung.
Das sind aber eher konzeptionelle Verständnisprobleme denn die Sprache Java ist bewusst einfach gehalten. Soll heissen es gibt eine eindeutige Syntax im Gegensatz zu C, wo es bestimmt 5 oder mehr Möglichkeiten gibt auf die Elemente eines Arrays zu zugreifen.
Die Sprache Java lernt man schnell, aber um eine vernünftige Software in Java zu produzieren bedarf es wesentlich mehr. Dafür braucht man vorallem Erfahrung in OOA, OOD Anwendung von Design Patterns, Frameworks etc.
Ich finde: Grundkurs Programmieren in Java Band 1 vom Hanser-Verlag super. Sehr unterhaltsam geschrieben. Fängt bei null an und hat dennoch einige Themen, die einem weiterhelfen, wenn man schon fortgeschritten ist.
ich erlaube mir das mal zu korregieren "mit der absoluten objektorientierung." ... Module oder Funktionen gibt es nicht ... alles immer schön in Klassen verpackt
wenn man sicher aber mal dran gewöhnt hat lernt man es lieben.
Also ich glaube, dass die Diskussion einem Punkt noch nicht berücksichtigt: Es hat meiner Meinung nach keinen Zweck, eine Programmiersprache, egal welche, aus einem noch so guten Buch zu lernen nach dem Motto: Jeden Tag ein Kapitel, und nach 22 Tagen bin ich dann der perfekte Programmierer. Programmieren lernt man am besten, wie man Sprechen, Lesen und Radfahren lernt: Durch Übung, Ausprobieren und vor allem durch: häufiger mal auf die Schn... fallen
Davon mal abgesehen sind ALLE modernen Programmiersprachen deutlich komplexer als das gute alte simple C oder als Turbo Pascal oder Commodore Basic (falls jemand das noch kennen sollte...). Das Problem ist aber meiner Meinung nach stets nicht die Sprache selbst, sondern (vor allem für Einsteiger) die Objektorientierung und die dazugehörogen sehr komplexen Frameworks. Ich glaube, in der Hinsicht gibt es kaum Unterschiede zwischen Java, C++, C# oder VB NET.
Langer Rede kurzer Sinn: Mein Rat ist es, nicht auf ein einzelnes Super-Buch zu setzen, sondern einfach mal ein paar Mini-Projekte zur Übung sich selbst überlegen und durchführen (vielleicht nicht als erstes mit Swing oder Multi-Threading beginnen...). An den Stellen, wo es hakt und wo man unsicher ist, folgendes (in genau dieser Reihenfolge!) konsultieren: 1. Java API Dokumentation, 2. Das entsprechende Java-Tutorial von der Sun-Website, 3. Google, 4. Bücherschrank, 5. java-forum.org. Natürlich kann man als Anfänger ein Buch als Leitfaden auf dem Schreibtisch liegen haben, aber eben nur als Leitfaden, und nicht als Allheilmittel.
ich finde Java ganz toll, doch bin ich noch zu unfähig komplexe Programme zu schreiben. Ich habe irgendwie schwierigkeiten mit Konstruktoren und Initialisierungen....auch das Referenzthema
Lokal ist das alles nicht so schwer, doch wenn man dann Klassenübergreifend initialisieren muss, dann übersteigts meiner Denkfähigkeit.
Mir bleibt leider nichts anderes übrig, als Java zu lernen und zu üben, denn ich schreibe meine Prüfungsarbeit in diesen Fach. (Habs schon nicht leicht als Student )
Ich befasse mich mit dem Buch : Java programmieren ( Grundkurs )
Ich finde es ansich nicht schlecht, jedoch hammer schwer für den Einstieg.
ich weiß nicht, mir kommt vor als stellst du dir das zu schwer vor... wie kann man schwierigkeiten mit konstuktoren haben? das ist einfach die methode die aufgerufen wird, wenn man new Klasse("asdf") aufgerufen wird...
zeig mal ein konkretes beispiel mit dem du probleme hast...
kann es sein dass du vorher php programmiert hast?
erstmal wünsch euch noch alle ein frohes Fest und ich wünsche mir , das ich java kann. Denn wir machen noch ein riesen Softwareprojekt und da muss ich so einiges können. ok, egal.
Also ich habe mal ne ganze zeit php programmiert...doch das hilft mir hier nicht weiter. Was ähnelt sind halt Abfragen oder schleifen. Das ist aber easy going.
Bücher ....mhh, ich habe davon schon 3 Stück zuhause und kann mir noch 5 andere aus der UNI Bibliothek ausleihen wenn ich möchte.Aber ob das sinn macht?
Derzeit beschäftig mich das Buch "Grundkursprogrammieren in Java". Das hilft mir in vielen Dingen weiter, doch sind mir einige Dinge bis heute nicht bewusst.
Wenn wir schon dabei sind.
....
Wenn euch wer fragt: "Was bedeutet objektorientierte Programmieung + erklären Sie an dem Beispiel Java.!?
Was würdet ihr denn sagen?
Stellt euch vor: Ihr solltet es einen Laien erklären.
Ich fang mal an:
Der Grundgedanke objektorientierter Programmierung hat vier grundlegende Prinzipien.
1) Generalisierung
Eine Basisklasse stellt eine Generalisierung ihrer abgeleiteten Klasse dar.
2)Vererbung
Subklassen(Sohnklassen) erben die Eigenschaften (Datenfelder, Methoden) ihrer Superklasse(Vaterklasse).
3)Kapselung
(Schwerste Thema der Objektorientierung......)
Mit Kapselung wird eine Schnittstelle nach Außen beschrieben. Ich habe jetzt echt tausend^^ bücher durchgelesen und kapiere es nicht richtig.
Hier kommen nämlich die beiden Methoden zu geltung, Get und Set.
Die Methode public String getName() soll den Inhalt der Instanz variablen Name auslesen und als Resultat der Methode zurückliefern.
/** Gib den Namen des Studenten als String zurück*/
public String getName() {
return this.name;
}
Das Wörtchen this liefert innerhalb eines Objekts immer eine Referenz auf das Objekt selbst.
Die Methode public void setName(String name) soll nun den Inhalt der Instanz variablen durch das übergebene String Argument ersetzen.
/** Setze den Namen des Studenten auf einen bestimmten Wert*/
public void setName(String name) {
this.name = name;
}
Sämtliche Instanz variablen werden so, vor der Außenwelt versteckt (Information oder Data-Hiding).
Der Zugriff von außen wird nur noch durch get und set ermöglicht.
Wozu macht man das? Kann mir das mal einer bitte in ganz einfachen Worten erklären?
Wenn ich ein riesiges Programm habe, wie bsp, meine kontoklasse:
Code:
public double getneuerkontostand() {
return neuerKontostand;
}
public void setneuerKontostand(double neuerKontostand) {
this.neuerKontostand = neuerKontostand;
}
public double getZahl() {
return zahl;
}
public void setZahl1(double zahl) {
this.zahl = zahl;
}
public double getZahl1() {
return zahl1;
}
public void setZahl(double zahl1) {
this.zahl1 = zahl1;
}
public int getpin()
{
return pin;
}
public void setpin(int pin)
{
this.pin=pin;
}
public int getkontonummer()
{
return kontonummer;
}
public void setkontonummer(int kontonummer)
{
this.kontonummer=kontonummer;
}
public int getblz()
{
return blz;
}
public void setblz(int blz)
{
this.blz=blz;
}
Ich habe das jetzt echt für jede Variable gemacht. Und alles nur wegen der Sicherheit, der Kapselung?
Wenn ich mir vorstelle, das meine Klasse noch mehr variablen hätte.....*omg*
(Was ich verstehe ist: "Wie man die Methoden schreibt". Das ist verständlich, denn wenn wir von Java sprechen, reden wir von Referenzen.)
4) Polymorphismus
Polymorphie bedeutet Vielgestaltigkeit ......überschreiben von Methoden.
Kann mir einer dieses Thema in 2 Zeilen erklären?
Ich gehe mal davon aus, dass jetzt einige denken werden, das ich total der NOOB in Java bin. Ich würde mich gerne vorab rechtfertigen: Java lerne ich erst seit drei monaten.
3 Monate ist lang, doch bin ich kein Informatiker. Ich bin Webdesignstudent und arbeite mit Photoshop und Cinema 4D. Da ist alles einfachen
plz help, gruß spin
PS: Ich finde dieses Forum ganz toll...deswegen würde ich mir mal ein Thread wünschen, in dem sowas von Usern erklärt wird. Anhand von Beispielen. Naja Träume darf man ja haben
Nun, besipiele bzw. erklärungen von benutzern findest du hier ohne ende. Auch die penBooks von Galileo sowie Wikipedia werden von 'Benutzern' geschrieben. Ob es dahe Sinn macht es nochmal zu beschreiben ist fraglich.
Ich selbst hatte bis vor 3 Jahren auch keinen blassen schimmer von Java, konnte es aber druch kenntnise in andren Sprachen innerhalb von einem monat soweit lernen, das ich meine ersten Programme schreiben konnte.
(Wenn ich mir die quelltexte hete allerdings anschaue, packe ich mir manchmal selber a den Kopf und frag mich, wie ich auf so einen misst gekommen bin)
Sowas wie Polimorphy, wird man erst richtig verstehen, wenn man es selber an wenden muss. Daher mein Tipp:
Einfach anfangen, der rest kommt (meisst) von alleine.
Das die ersten gehversuche schief gehen ist ganz normal. Und Polimorphy wirst du für den Anfang erstmal nicht brauchen. Erst wenn du auf Probleme triffst, das du nicht direkt lösen kannst macht es Sinn sich tiefer in bestimmte Materie einzulesen ( durch Probleme im eigenen code ist es dann meisst auch besser verstädlich )
Und wenn du dich unfähig siehst, komplexe Programme zu schreiben, musst du dich selber erstmal fragen:
Was ist ein komplexes Programm?
- ein Programm was Polimorphy beinhaltet?
- ein Programm mit 15000 Klassen?
- oder doch eine Klasse mit 15000 Zeilen?
...
Das man nicht in der lage ist komplexe Programme zu bauen kann also eigentlich nicht sein.
Such dir einfach mal ein Thema aus, und fang an es umzusetzten:
Zu Weihnachten empfielt sich zum beispiel ein Geschenke-Manager:
Wer hat was wem geschenkt?
Das Proggi sollte dann zB benutzer anlegen können.
Ein benutzer kann schenker sein, aber auch beschenkt werden.
Jetzt gibt es zwar viele wege die zum Ziehl führen, aber dadurch das der benutzer schenker und beschenkter sein kann, hast du zumindest einen anlass Polymorph zu Programmieren.
Ich fange gerade erst an (seit ca. 1 Monat) mich in Java reinzufinden. Zur Zeit besitze ich nur das Buch "Java ist auch eine Insel 7" und finde das es doch ehr ein Referenzbuch zum Nachschlagen ist da es an manchen stellen doch schon etwas tiefer in die Materie eintaucht...also anderst als ich Anfangs dachte.
Nun suche ich eben ein weiteres Buch zum lernen und hab auch gehört das dieses Buch "Java von Kopf bis Fuss" das lernen noch mehr interessanter machen soll da es auch viel Praxis und Spass inne hat.
Die "von Kopf bis Fuß"-Reihe ist Geschmackssache. Beim Durchblättern kam es mir so vor, als wäre mit wildem Layout und vielen Bildchen von mangelndem Inhalt abgelenkt worden, aber manche schwören auch auf die Bücher (ich habe z.B. gutes über das Pattern-Buch gehört).
Ein richtig gutes Buch, das einsteigertauglich OO mit Java vermittelt, ist mir noch nicht untergekommen. Offenbar ist es zu schwierig, gleichzeitig die Konzepte und die Sprache zu vermitteln - in der Regel kommen die Konzepte zu kurz. Wälzer, die die Java-API auflisten, gibt es genug, aber die braucht kein Mensch.
Ich würde dir raten, vor Englisch nicht zurückzuschrecken (Ich habe inzwischen mehr englischsprachige Java-Bücher als deutsche), englische Fachbücher sind meist sehr verständlich geschrieben, und in unserem Job brauchst du die Sprache sowieso. Die Qualität der Bücher läßt sich ganz gut über den Verlag abschätzen: Spontan fallen mir dazu Addison-Wesley, O'Reilly, Mannings und natürlich Sun ein.
Ich würde da noch Einstieg in Java 6 von Bernhard Steppan empfehlen. Dieses Buch gibt zu vielen relevanten 'Anfängerthemen'(Java Grundlagen, OOP, DB-Programmierung, GUI-Programmierung, Java Werkzeuge etc.), eine komprimierte und leicht verständliche Einführung. Ich habe es neulich für 19,90 Euronen als ungebundene Ausgabe gesehen, ist also auch noch relativ günstig.
Will man sich tiefer gehende Details ansehen wird man eh in anderen Büchern nachschauen müssen, wie dann z.B. die Javainsel.
Ich habe jetzt www.javabuch.de genommen und komme damit schon wesentlich besser zurecht. Allerdings hat das auch so seine Macken denn da kommen am Anfang schon Dinge dran die später erst drankommen sollten. Außerdem geht der Autor scheinbar davon aus das man das Abitur haben muss, um das Buch lesen zu können.
Ich habe jetzt www.javabuch.de genommen und komme damit schon wesentlich besser zurecht. Allerdings hat das auch so seine Macken denn da kommen am Anfang schon Dinge dran die später erst drankommen sollten. Außerdem geht der Autor scheinbar davon aus das man das Abitur haben muss, um das Buch lesen zu können.
Ich denke das 'Problem' beim Javabuch und der Javainsel liegt eigentlich eher darin, das beide eher Referenzen oder Kompendien, also Nachschlagewerke sind. Sie dienen dazu wirklich tiefer in grundlegende Konzepte einzutauchen, weniger dazu praxisorientierte Beispiele zu liefern.
Um einen schnellen Einstieg zu finden oder recht schnell Zugang zu 'interessante' Themen zu bekommen, sind andere Bücher sicherlich besser geeignet (wie zum Beispiel Head First oder Einstieg in Java 6).
Man wird um die Mischung nicht drum herum kommen: einen schnellen Einstieg und parallel zur Vertiefung eine Referenz.
Java ist antianfängerorientiert
Ich finde den syntax im vergleich zu basic (meine erste programmiersprache) überkompliziert.
z.B. (programmiere gerade ein Applet...)
Code:
JButton SpongeBob;
SpongeBob = new JButton();
add(SpongeBob);
und erst nach dem 3. Schritt ist der Button im Applet! Bis dahin muss man hin und her konjugieren... alles Tautologie...
Java ist leider wahnsinnig umfangreich und es ist schwer den Anfang vom Ende zu unterscheiden.
Womit soll man denn überhaupt anfangen? Also, nachdem man sich eine Basis geschaffen hat. Sollte man nach den basics zu Applets weiter kämpfen oder zu Frames ?
Oder sollte man sich gleich mit Applets beschäftigen und die Console garnicht beachten? Naja was solls.....einfach sich mit der Materie beschäftigen....
- zB GUI:
Du baust dir Programme, die irgendeine Datenstruktur haben, ohne tieferen Sinn. Ein Adressbuch zB, oder
eine Pseudo-Software für eine Bank zum Verwalten von Kunden und Konten (typisches Bsp immer)
Und dann beschäftigst du dich mit Layouts, Listen, Sortieren, Drag & Drop, Swing-Listenern und sowas.
Bau dir einfach eine Appltikation die eigentlich nix macht, aber so aussieht als würde sie etwas machen.
Oder Spielchen:
Snake, Tetris, ...
Da lernst du den Umgang mit Threads, zeichnen von Dingen auf Panels, auch viel vom AWT Event Dispatch Thread
in diesem Zuge. Und es ist Logik-Training (Game-Loop) wovon man eh nie genug haben kann.
Womit soll man denn überhaupt anfangen? Also, nachdem man sich eine Basis geschaffen hat. Sollte man nach den basics zu Applets weiter kämpfen oder zu Frames ?
Oder sollte man sich gleich mit Applets beschäftigen und die Console garnicht beachten? Naja was solls.....einfach sich mit der Materie beschäftigen....
Liegt das nicht auch einfach daran was man überhaupt machen möchte? Was möchte man programmieren? Wenn man das für sich weiß, dann kann man gezielt die Bereiche lernen, die man benötigt oder einen interessieren.
Applets sind meiner Meinung nach kein Anfängerstoff. Eine Swing-Anwendung, die das Gleiche wie ein Applet macht, läßt sich viel leichter verstehen, es gibt mehr Hilfe dazu im Web, und vor allem lassen sich Fehler viel leichter finden. Wenn man Swing dann einigermaßen beherrscht, sind Applets ein Klacks.
Was du willst, heißt "Typinferenz", und gibt es leider nicht in Java, aber in vielen anderen Sprachen, u.a. C#, D, Boo und Scala (siehe http://en.wikipedia.org/wiki/Type_inference ).
Was du willst, heißt "Typinferenz", und gibt es leider nicht in Java, aber in vielen anderen Sprachen, u.a. C#, D, Boo und Scala (siehe http://en.wikipedia.org/wiki/Type_inference ).