Jetzt lerne ich Java 6

Eine erste Klasse

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Von 'Objekten' hat der Autor schon gesprochen - was ist aber dann eine Klasse? Erlernen Sie die grundlegende Definition und Instanzierung einer Klasse und erkennen Sie den Nutzen dieses 'Aufwands'.
12:28

Transkript

Im vorangegangenen Film haben wir ein paar Begrifflichkeiten kennengelernt. Wir haben über Objekte gesprochen. Objekte sind zum Beispiel mein Konto, Ihr Konto, ich als Person Helge Maus und Sie als Person. Dann hab' ich hin und wieder das Wort "Klasse" erwähnt, aber nicht näher beschrieben. Das sollten wir noch klären. Was ist nun eine Klasse? Denn wir haben es in Java andauernd mit Klassen zu tun. Nun, Klassen sind abstrakte Modelle. Hier, das ist die Beschreibung einer Klasse. Dies ist die Beschreibung eines Kontos mit seinen Eigenschaften und Methoden. Das ist recht theoretisch. Sie könnten daraus sozusagen ein Formblatt machen, ein Formular, und dieses beliebig oft kopieren. Und jeder, der in Ihre Bank kommt, könnte dann ein ausgefülltes Formular bekommen. Das Formblatt selber wäre die Klasse. Also sozusagen die Vorlage. Das ausgefüllte Formular mit einem konkreten Namen eines Besitzers, einem konkreten Kontostand - das ist das einzelne Objekt. Sie können sozusagen sagen, dass ein Objekt das Fleisch gewordene Klassenmodell ist. Oder man spricht auch häufig davon, man hat eine Klasse und instanziert diese, macht eine Instanz daraus und dann haben wir ein Objekt. Und aus einer Klasse können wir natürlich beliebig viele Instanzen machen. Jetzt wollen wir aber diese Klasse mal wirklich javamäßig beschreiben. Dafür verwende ich hier meine Kontoklasse, die ich hier schon mal entworfen habe. Eine goldene Regel bei der Java-Programmierung ist: Alle Klassen, die nachher öffentlich zugänglich sind, kommen in eine eigene Java-Datei. Deshalb hab' ich hier, innerhalb meiner Umgebung, eben schon brav für Konto und auch für Person eine eigene Datei angelegt. Das geht in der NetBeans-Umgebung recht einfach. Man geht einfach auf "File", "New File" oder klickt hier auf diesen Knopf, und dann wählt man einfach aus, man möchte eine Java-Klasse haben, hier "Java Class". Man benennt die Klasse. Eine Konvention bei der Programmierung von Java ist, dass Klassennamen mit einem Großbuchstaben beginnen. Dann kann man direkt erkennen, okay, das ist eine Klasse. Und diese sind auch in Paketen organisiert, auf die wir später nochmal eingehen werden. Wenn wir so eine Klasse anlegen... wir legen jetzt einfach vielleicht mal eine Klasse für ein Auto an, dann nenn' ich das Ganze "Auto", sag' "Finish", und dann bekomme ich dieses Java-Modell. Und jetzt können wir uns das mal in Bezug auf eine Klasse anschauen. Wir haben hier oben in der ersten Zeile, was eben nicht Kommentar ist, das Package, in dem sich das Ganze befindet. Das ist zur Ordnerstruktur sozusagen, in welchem Paket diese Klasse nachher liegen wird. Danach beginnt das Ganze mit dem Schlüsselwort "Public". Das ist ein Zugriffsmodifizierer, der sagt, dass diese Klasse öffentlich zugänglich ist für jeden. Das ist eine schöne Sache. Danach sagen wir, dass wir nun eine Klasse deklarieren wollen. Wir beschreiben eine Klasse, daher das Wort "Class". Es ist das abstrakte Modell, es ist noch kein konkretes Auto. Danach kommt der Name der Klasse, die wir bauen wollen: "Auto". Aha, so heißt auch die Datei. Wenn jede öffentliche Klasse eine eigene Java-Datei bekommt, muss logischerweise die Klasse, die hier drinnen steht, den gleichen Namen haben. Ist logisch. Die gesamte Klassendefinition liegt dann zwischen geschweiften Klammern. Das kennen wir schon. Und innerhalb dieser Klasse liegt zurzeit, die hab' ich die ganze Zeit gelöscht, hier eine Methode. Die werden wir uns nachher noch anschauen. Das ist der sogenannte Konstruktor. Das ist eine Methode, die automatisch aufgerufen wird, wenn wir instanzieren. Das bedeutet, wenn aus der theoretischen, der abstrakten Klasse ein konkretes Objekt wird. Wenn aus allgemein "Auto" MEIN Auto wird. Dann wird diese Methode aufgerufen. Nun aber schnell zurück zu unserem Konto. Das Gleiche müssen wir nämlich jetzt auch hier bauen. Das Ganze hier wandert mal kurz in einen Blog-Kommentar, damit wir uns hier nicht irgendwie verhauen. Und dann können wir hier schon mit unserem Quellcode loslegen. Wir wollen eine öffentliche Klasse haben, deshalb schreiben wir hin "public". Danach deuten wir an, wir wollen eine Klasse nun aufbauen, also "class". Und danach den Namen. Ich hab' ja gesagt, achten wir drauf, wie auch unsere Datei heißt. Die muss genauso heißen wie die Klasse, die wir darin definieren, also "Konto", geschweifte Klammern, und in die geschweiften Klammern wird jetzt unsere Klasse aufgebaut. Wunderbar. Das Nächste, was wir jetzt tun, innerhalb unserer Klasse, ist: Wir legen unsere Eigenschaften fest, die wir benötigen. Ich setz' dafür einfach hier erstmal einen Kommentar. Dann ist das Ganze etwas übersichtlicher, und jetzt kennen Sie das ja bereits. Nur, dass wir die ganze Zeit in einer Methode drin standen. Jetzt stehen wir einfach in der Klasse. Wir müssen zuerst den Kontostand erfassen. Wir überlegen mal kurz, was würde sich als Kontostand anbieten? Ein Double-Wert. Also "double kontostand". Danach brauchen wir noch einen Besitzer. Das schreit nach einem String. Und damit haben wir unsere Eigenschaften dieser Klasse schon festgelegt. War doch gar nicht so schwer. Im nächsten Schritt wollen wir noch Methoden festlegen. Methoden, das ist relativ einfach, sind das, was in anderen Programmiersprachen Funktionen und Prozeduren sind. Da wird unterschieden zwischen Funktionen und Prozeduren, denn bei den einen wird ein Wert zurückgegeben, bei den anderen nicht. In Java selbst existiert beides nicht. Denn alles, was hier an Funktionalität existiert, steckt immer in einer Klasse. Und daher sind es immer Methoden. Auch unser Hauptprogramm Maine ist in Wirklichkeit hier, was ja die ganze Zeit aussah wie eine Funktion, ein Bestandteil einer Klasse. Und zwar der Klasse "Maine" an dieser Stelle. Das bedeutet: Ein Java-Programm, in Wirklichkeit, steckt in einer eigenen Klasse. Und die Einsprungstelle für das Programm ist eben eine speziell bezeichnete Methode mit dem Namen "Maine" - mehr nicht. Also, gehen wir wieder hierhin zurück. Wir wollen jetzt eine Methode definieren: "Kontostand erfragen". Hierzu müssen wir ein paar Dinge bereits vorgreifen. Wir werden uns gleich Methoden noch etwas näher anschauen. Hierzu müssen wir zuerst einmal den Rückgabewert angeben. Der Rückgabewert für "Kontostand erfragen" wäre ein Double-Wert. Und im nächsten Schritt müssen wir eben sagen, wie die Methode aufgerufen werden soll, wie sie heißt. Die nennen wir einfach mal "getKontostand". In Java ist es üblich, bei Methoden, die man mit einem Kleinbuchstaben beginnt, den nächsten Wortstamm immer mit einem Großbuchstaben zu beginnen. Dann kann man es etwas besser lesen. Das ist kein Muss, aber es ist eine gute Sache. Anschließend kommen runde Klammern, hier kommen die Übergabeparameter rein; also das, was man an die Methode geben möchte, damit die arbeiten kann. Da brauchen wir zurzeit nichts, denn bei "getKontostand" bekommen wir ja nur was. Aber danach kommen geschweifte Klammern. Und da rein kommt jetzt die Funktionalität. Wie bekommt man einen Kontostand? Nun, man liefert ihn. Ich liefere den aus mit dem Wort "return". Auch das hatten Sie noch nicht, schauen wir uns später an. Und ich gebe hier den Kontostand einfach zurück. So hätte ich meine erste Methode geschrieben. Jetzt benötigen wir noch etwas. Wir brauchen eine Methode, die Geld einzahlt, damit wir irgendwann mal einen Kontostand bekommen. Also, gleiches Prinzip. Dieses Mal bekommen wir nichts zurück, wenn wir die Methode aufgerufen haben. Dafür gibt es ein Wort in Java, das sich "void" nennt. Das heißt soviel wie "Es kommt nichts zurück". Dieses Mal setzen wir was, also nennen wir das "setKontostand" und übergeben an diese Methode einen Double-Wert, und zwar den Kontostand, den wir haben wollen. Also, nennen wir den "neuKto", das ist der neue Kontostand. Auch hier wieder geschweifte Klammern darunter. Und nun setzen wir unseren Kontostand. Der Kontostand selbst ist eine Eigenschaft dieser Klasse hier. Und daher sagen wir, der Kontostand ist gleich dem, was hier hineingeworfen wurde: "neuKto" - und das war's. So haben wir jetzt unsere Klasse implementiert. Wir können diese Klasse mal kurz speichern, und nun wollen wir diese auch verwenden, und zwar in unserem Hauptprogramm. Wechseln wir also nach Maine, in unser Hauptprogramm, und machen jetzt nichts anderes als das, was wir die ganze Zeit bereits gemacht haben, als Sie mit Datentypen gearbeitet haben. Sie erinnern sich: Wenn wir einen String haben wollten, haben wir gesagt: "String name = "Helge"" zum Beispiel. Dieses Mal wollen wir aber nicht einen String anlegen, sondern ein Konto. Nun, kein Problem. Da wir in unserem Projekt im gleichen Verzeichnis - hier sind wir - eine Klasse "Konto" angelegt haben, können wir auf diese sofort zugreifen. Daher können wir jetzt hier schreiben: Wir wollen ein neues Konto haben, also der Datentyp ist "Konto". Wir nennen das Konto einfach mal "kto ="... und jetzt brauchen wir eben von der abstrakten Klasse eine echte, reale Instanz. Deshalb verwenden wir das Schlüsselwort "new", also ein neues Konto. Und danach kommen runde Klammern und ein Semikolon. Damit haben wir an dieser Stelle nun ein neues Konto ins Leben gerufen. Das hier ist eine Referenz, ein Zeiger auf ein reales Objekt. Und dieses Objekt ist eine Instanz der Klasse "Konto". Was das heißt: Wir können jetzt über Konto "kto", Punkt, auf die Dinge zugreifen, die wir vergeben haben. Wir sehen jetzt hier schon in der Hilfe, wir haben Eigenschaften, einen String "Besitzer", einen Double-Wert "Kontostand" und hier eine Methode "getKontostand", die einen Double-Wert zurückliefert, und eine "setKontostand"-Methode, die einen Double-Wert für den neuen Kontostand benötigt, und nichts zurückgibt. Die anderen Dinge hier sind übrigens geerbt. Darauf werden wir später noch eingehen. Also, wir haben jetzt den Zugriff auf das, was ein Konto normalerweise kann. Und eine echte Instanz von "Konto" kann eben alles, was ein Konto kann, und das haben wir ja hier in unserer Klasse "Konto" definiert mit ihren zwei Methoden und ihren Eigenschaften. Also wollen wir diese auch kurz nutzen. Wir sagen zuerst einmal "setKontostand". Jetzt wird ein Double-Wert erwartet. Ich habe 11,70 Euro auf meinem Konto. Jetzt hat mein Konto also 11,70 Euro. Und wenn ich jetzt den Kontostand auslesen möchte: "sout", damit wir "System.out.println" bekommen, "Mein Kontostand", Doppelpunkt, und kleben jetzt hier "kto", also Konto, Punkt, "getKontostand" an. Wenn wir das jetzt mal kompilieren und ausführen lassen, haben wir noch einen kleinen Fehler, das ist echt schade. Wir haben hier nämlich noch "Person.java". Das müssen wir noch alles auskommentieren. Bei "Auto" haben wir nichts drin zurzeit. Wir lassen das jetzt nochmal laufen. Jetzt läuft alles durch und jetzt sehen Sie, dass wir als Ergebnis "Mein Kontostand: 11,7" bekommen. Das ist also die grundlegende Verwendung von Klassen, Instanzierung und Nutzen einer solchen Klasse. Ich weiß, das war am Anfang jetzt ein bisschen viel, aber Sie werden jetzt im Laufe der Lektionen die einzelnen Punkte, die wir jetzt hier im Rundumflug gemacht haben, einzeln besprochen bekommen, und ich denke, dann wird es relativ schnell klar, was wir hier eigentlich tun.

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!