Klasse- Objekt - Klassenobjekt :?

Status
Nicht offen für weitere Antworten.

EinAnfaenger

Mitglied
Hey Ihr,
ich bin sowas wie ein ziemlicher Newbie und brauche mal Hilfe :)

Was ich schon weiß:
es gibt verschiedenste Variablentypen, z.B. Int, String ( was wohl auch eine Klasse sein kann.. ), float, char etc.

Soweit ist das klar.

Wenn ich ein Array definieren will, dann schreibe ich z.B. :

int arrayname[]= new int[10];

ABER:

ich arbeite mich gerade durch so ein Java-Buch und komme an einer Stelle nicht weiter, hier erstmal der Quelltext:

Code:
class RangeClass {
    int[] makeRange(int lower, int upper) {
        int arr[] = new int[ (upper - lower) + 1 ];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = lower++;
        }
        return arr;
    }

    public static void main(String[] arguments) {
        int theArray[];
        RangeClass theRange = new RangeClass();

        theArray = theRange.makeRange(1, 10);
        System.out.print("The array: [ ");
        for (int i = 0; i < theArray.length; i++) {
            System.out.print(theArray[i] + " ");
        }
        System.out.println("]");
    }

}

Mein Problem ist diese Zeile:
Code:
RangeClass theRange = new RangeClass();

Was passiert hier ? Ich meine, RangeClass ist doch kein Variablentyp, sondern der Name der Klasse. Welche Form nimmt diese Variable denn jetzt an?

Diese Form des Selbstaufrufs habe ich socn oft gesehen, aber nie verstanden.

HELP :(

Danke schonmal für Eure Tipps,

Stefan
 
B

Beni

Gast
"theRange" ist eine Variable welche auf ein Objekt des Types "RangleClass" zeigt. Mit "new RangeClass" wird ein solches Objekt hergestellt.
 

sliwalker

Top Contributor
Hoi,

Beni hat immer Recht, wenn es um Java geht. :meld:

Aber nochmal ein bisschen genauer:

RangeClass ist wie Du sagts der Name der Klasse.
Aus Klassen kann man Objekte erzeugen. ( das nennt man instanzieren)
Diese Objekte beziechnet man auch als Instanzen der Klasse.

Alle Objekte haben einen Datentyp. ( die Gurus verzeihen wenn das falsch ist, alles kenne ich auch nicht )
Der Typ eines Objektes aus einer Klasse, ist der Name der Klasse.

Code:
RangeClass theRange = new RangeClass();

Somit dürften die ersten beiden Begriffe dieser Zeile klar sein.
Das Schlüsselwort " new " besorgt Arbeitspeicher.
Es reserviert ihn für Dein Programm.

In der Klasse steht eine "Methode" die RangeClass() heißt und immer aufgerufen wird,
wenn man ein Objekt aus RangeClass erstellen will.
Diese "Methode" nennt man den Konstruktor.
Dort steht alles drin, was benötigt wird um ein Objekt der Klasse zu erstellen.

Zu dem Thema gibt es einen Eintrag in der FAQ: http://www.java-forum.org/de/viewtopic.php?t=3057

greetz
SLi
 
B

Beni

Gast
Wenn du sowas hast:
Code:
public class Blupp{
  public int blabla(){
    return 1;
  }
}

Dann wird das vom Compiler automatisch umgewandelt in:
Code:
public class Blupp{
  public Blupp(){
  }

  public int blabla(){
    return 1;
  }
}


Und genau das passiert auch mit RangeClass (von da kommt der Konstruktor (bzw. die Spezialmethode RangeClass())

[Hast recht Sliwalker, aber ich schreibe lieber zuwenig als zuviel :wink: ]
 
B

Beni

Gast
Der Konstruktor macht mehr, als da steht. Er erstellt das Objekt. Weil das immer gleich abläuft, musst du das allerdings nicht hinschreiben... (z.B. wird da automatisch der Konstruktor von der Superklasse aufgerufen (die Object-Klasse, von der RangeClass erbt), aber immer eins nach dem anderen :wink:)

Wichtig ist nur, dass er existiert, und dass du ihn aufrufen kannst (um ein Objekt des Types RangeClass zu erstellen).
 

Illuvatar

Top Contributor
Die "Spezialmethode" heißt Konstruktor. Jede Klasse hat einen Konstruktor. Dies ist die "Methode", die bei der Erzeugung eines Objekts der Klasse aufgerufen wird.
Code:
public class Clazz
{
  public Clazz () //Konstruktor
  {
    //Initialisierung
  }
}

Der Konstruktor kann auch überladen werden und Argumente entgegen nehmen, um die gewünschte Initialisierung vorzunehmen. Bei einem Aufruf des Konstruktors
Code:
new Clazz()
wird eine Instanz der Klasse auf den Heap gelegt. Der new-Operator gibt eine Art Zeiger auf diese Instanz zurück. Dieser kann nun in einer passenden Variable gespeichert werden.
Code:
Clazz objekt = new Clazz(); //bzw
Object objekt = new Clazz();
 

mic_checker

Top Contributor
vielleicht hab ichs gerade ja überlesen, aber man sollte vielleicht noch dazu sagen das dieser Konstruktor (genannt: Standard-Konstruktor) nur dann automatisch angelegt wird, wenn man keinen eigenen Konstruktor für die Klasse schreibt.

Sobald man selbst einen Konstruktor implementiert , erzeugt der Compiler nicht mehr automatisch den Standard-Konstruktor und ein Aufruf von KlassenName() würde zu einem Fehler führen (außer man überschreibt diesen).

Nur als kleiner Zusatz...
 

mic_checker

Top Contributor
Sorry wenn ich nochmal poste, aber ist mir gerad erst aufgefallen:

EinAnfaenger hat gesagt.:
Was ich schon weiß:
es gibt verschiedenste Variablentypen, z.B. Int, String ( was wohl auch eine Klasse sein kann.. ), float, char etc.

SO, ist das meiner Meinung nach nicht korrekt formuliert, es gibt verschieden einfache Datentypen:

-boolean
-char
-byte
-short
-int
-long
-float
-double


String kann nicht nur eine Klasse sein, String ist eine Klasse -> siehe Sources....

greets
mic_checker
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
S Objekt einer Klasse OnClick Java Basics - Anfänger-Themen 5
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
C Klassen Objekt der Instant-Klasse Java Basics - Anfänger-Themen 6
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
K Objekt einer Klasse weitergeben Java Basics - Anfänger-Themen 1
E Methoden Auf Methoden einer Klasse zugreifen, ohne ein Objekt zu erstellen Java Basics - Anfänger-Themen 2
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
S Klassen Auf Objekt in Klasse A in Klasse B zugreifen Java Basics - Anfänger-Themen 4
G Auf Objekt der selben Klasse zugreifen Java Basics - Anfänger-Themen 2
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4
E Attribute von einem Objekt einer anderen Klasse ändern Java Basics - Anfänger-Themen 4
R Compiler-Fehler Klasse A nutzt Objekt von Klasse B, um Methode von Klasse B auszuführen Java Basics - Anfänger-Themen 11
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
V Aufrufendes Objekt bestimmen (nicht die Klasse) Java Basics - Anfänger-Themen 3
D OOP Zugriff auf Objekte A in Klasse A aus Objekt B in Klasse B Java Basics - Anfänger-Themen 3
X Objekt in einer Klasse aufrufen Java Basics - Anfänger-Themen 13
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
G OOP Aus Objekt auf Funktion der erzeuger Klasse zugreifen? Java Basics - Anfänger-Themen 11
K Kapselung Von Klasse auf Objekt zugreifen Java Basics - Anfänger-Themen 8
S Polymorphes Objekt in eigentliche Klasse casten Java Basics - Anfänger-Themen 6
D OOP Zugriff auf eine Klasse aus einem Interface-Objekt Java Basics - Anfänger-Themen 7
K Klassen Objekt mit einem Namen von einer bestimmten Klasse instanziieren Java Basics - Anfänger-Themen 10
L Objekt.methode(new Klasse().methode()); Java Basics - Anfänger-Themen 7
B Klassen über Main Klasse in einer anderen Klasse ein Objekt erstellen Java Basics - Anfänger-Themen 5
N Klassen Klasse - Objekt - Methode Java Basics - Anfänger-Themen 6
A objekt innerhalb der gleiche klasse Java Basics - Anfänger-Themen 10
P Klassen Objekt der Klasse String Java Basics - Anfänger-Themen 9
S Vererbung/Herausfinden welches Objekt von welcher Klasse Java Basics - Anfänger-Themen 4
S OOP Auf ein Objekt von einer anderern Klasse zugreifen Java Basics - Anfänger-Themen 3
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
C Objekt X über Methode aus anderer Klasse verändert Java Basics - Anfänger-Themen 3
L auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist. Java Basics - Anfänger-Themen 12
I Einzelnes Objekt einer Klasse bekommen Java Basics - Anfänger-Themen 9
F Klasse bzw Objekt in eigenen Thread auslagern Java Basics - Anfänger-Themen 3
C Objekt von Klasse im gleichen Paket erzeugen Java Basics - Anfänger-Themen 8
Z objekt erstellen von canonical name einer klasse Java Basics - Anfänger-Themen 6
A [gelöst]Aus der Klasse heraus auf ein anderes Objekt zugreifen Java Basics - Anfänger-Themen 4
J Unterschied Klasse Objekt Java Basics - Anfänger-Themen 4
V objekt einer Klasse erstellen Java Basics - Anfänger-Themen 21
G objekt der selben klasse erzeugen Java Basics - Anfänger-Themen 4
G Objekt der Klasse vs. Objekt des Typs Java Basics - Anfänger-Themen 4
G Methodenaufruf über ein Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
P Prüfen, ob Objekt von einer Klasse ist Java Basics - Anfänger-Themen 3
T Zugriff auf umgebendes Objekt mittels Objekt innerer Klasse Java Basics - Anfänger-Themen 2
T klasse objekt, syntax Java Basics - Anfänger-Themen 2
G neues Objekt der Klasse eines anderen Objekts Java Basics - Anfänger-Themen 3
G Objekt öffnen von einer anderen Klasse öffnen Java Basics - Anfänger-Themen 6
° Zugriff auf ein Objekt der eigenen Klasse Java Basics - Anfänger-Themen 2
D Objekt der Methode einer anderen Klasse zuordnen Java Basics - Anfänger-Themen 6
G Problem bei der Angabe von Attributen in einer Objekt-Klasse Java Basics - Anfänger-Themen 3
J Attribut vom Objekt einer eigenen Klasse setzen Java Basics - Anfänger-Themen 6
J Objekt aus anderer Klasse und Package erzeugen Java Basics - Anfänger-Themen 11
L Klasse(Objekt) <=> Klasse <=> Klasse Java Basics - Anfänger-Themen 5
A Objekt der ganzen Klasse zugängig machen Java Basics - Anfänger-Themen 7
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
M Methode bekommt ein Objekt der Klasse als Parameter. Wozu? Java Basics - Anfänger-Themen 4
M objekt (linkedList) zugriff aus einer anderen klasse Java Basics - Anfänger-Themen 3
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29

Ähnliche Java Themen

Neue Themen


Oben