java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Java-Forum FAQs > FAQ - Übersicht > Java-FAQ Beiträge > Einführungen und erste Schritte

Thema geschlossen
Themen-Optionen Thema durchsuchen Ansicht
Alt 12.03.2004, 15:06   #1 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von bygones
 
Registriert seit: 07.10.2003
Beiträge: 7.431
Blog-Einträge: 7
Abgegebene Danke: 16
Erhielt 33 Danke für 31 Beiträge
Standard Aufbau einer Klasse - Erzeugung einer Instanz

Zitat: Tobias
Eine Klasse schaut wie folgt aus:

Sie hat einen Kopf:
Code:
public class Name

public Der Zugriffsspezifizierer - ist im Moment eher unwichtig
class Das Schlüsselwort class
Name Dein selbstdefinierter Name für die Klasse, der Java-Konvention folgend immer mit einem Großbuchstaben beginnend.

Auf den Kopf folgt in geschweiften Klammer der Rumpf, welcher immer mindestens eine Methode enthält - sogar wenn man diese spezielle Methode nicht ausdrücklich hinschreibt.
Diese Methode ist der Konstuktor und muss immer genauso heißen, wie die Klasse selbst - in unserem Fall also Name().

Code:
public Name() {  }
Wenn du eine neue Instanz einer Klasse anlegen willst - oder anders benannt: ein neues Objekt erstellst - so mußt du den Konstruktor aufrufen, was genauso aussieht, wie ein normaler Methodenaufruf, also bei uns:

Code:
Name objektVariable = new Name();
Man kann in einem Konstruktor auch Parameter angeben - z.B. um Variablen zu initialisieren. Auch da funktioniert der Aufruf genau wie bei einer normalen Methode:

zum Beispiel:
Code:
Name objektVariable = new Name("Tobias", "D.");
Der Konstruktor sieht dann so aus:

Code:
public Name(String vorname, String nachname)  {
    // mach irgendwas mit den Argumenten...
    }
Damit man wie oben vorgeschlagen, Variablen (typischerweise Intanzvariablen, also Variablen, die im ganzen Objekt bekannt sind) initialisieren kann, müssen natürlich erst mal Variablen vorhanden sein. Instanzvariablen schreibt man üblicherweise an den Anfang der Klasse, also direkt unter den Kopf.

Instanzvariablen sehen so aus:
Code:
public String vorname;
public String nachname;
oder allgemein geschrieben [Zugriffsspezifizierer] Typ Name; -> also ein optionaler Zugriffsspezifizierer, der uns nicht weiter interessieren soll, der Variablentyp und der Name der Variablen, der nach Javakonvention immer mit einem Kleinbuchstaben beginnt. Abgeschlossen wird das Ganze natürlich mit einem Semikolon.

Dann wollen wir mal unseren Konstruktor erweitern, dass er diese Variablen initialisiert:

Code:
public Name(String vorname, String nachname) {
    this.vorname = vorname;
    this.nachname = nachname;
    }
Soweit ganz einfach - bis auf this! Was hat denn das da verloren?
Auch das ist eigentlich einfach: Woher soll der Compiler wissen, welche Variable vorname im obigen Konstruktor vor dem Gleichheitszeichen steht und welche dahinter? Es gibt ja zwei davon - eine, die im ganzen Objekt bekannt ist und eine, die als Argument übergeben wurde...
Hier kommt this ins Spiel. Es ist ein Verweis auf das eigene Objekt, also quasi der Hinweis für den Compiler, das die nun folgende Variable die ist, die im ganzen Objekt bekannt ist.

Es ist übrigens nicht notwendig, dass man Argument und zu initialisierende Instanzvariable gleich benennt - es schafft aber bessere ßbersicht und nimmt einem das lästige Finden guter Variablennamen zum Gutteil ab .

Siehe auch: Zu Zugriffsspezifizierern: http://www.java-forum.org/de/topics/java_1546.html (broken link)

mpG
Tobias
// EDIT: Kaputten Link markiert
__________________
Test Driven Development is like sex. If you dont like it, you probably aint doing it right !

Proleptic programming is like driving 15 on the freeway because you will exit once and pass a school area !
bygones ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Name der Instanz einer Klasse. Gast Java Basics - Anfänger-Themen 2 27.10.2008 20:30
Instanz einer Klasse in einer anderen klasse erzeugen DerDuke2oo9 Java Basics - Anfänger-Themen 3 21.02.2006 10:44
Aufbau einer DB-Klasse Hannes23 Datenbankprogrammierung 10 24.10.2005 12:11
Vererbung auch ohne erzeugung einer Instanz möglich? Heiland Allgemeine Java-Themen 3 21.08.2005 13:22
Name einer Instanz einer Klasse IN der Klasse erfahren ?? Düark Softwareentwicklung 3 24.11.2003 19:43


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de