Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt

niklas._.kpl

Mitglied
Hallo, ich bin gerade dabei Java zu erlernen. Momentan lerne ich die ArrayList kennen dabei haben sich mir 2 Folgende Frage gestellt.

1. Wenn ich eine ArrayListe erstelle und dieser ein Objekt zuordne, bekommt das Objekt ja ein Index zugeordnet. Aber was passiert mit dem Namen des Objektes, also zum Beispiel:

Java:
String name1 = "Thomas";
String name2 = "Silvia";

List<String> nameListe = new ArrayList<String>();
nameListe.add(name1);
nameListe.add(name2);
Gehen dann die Namen der String Objekte einfach verloren oder wie ist da die Funktionsweise?

2. Wenn ich eine static Methode erstelle, mit der man ein Objekt erstellen kann (Gibt erstelltes Objekt als Rückgabewert zurück). Wenn ich dann die Methode bei der Add(..); Funktion bei einer ArrayList verwende, wird ja das erstellte Objekt direkt in der ArrayListe gespeichert, kann ich dann auch außerhalb der Liste auf dieses erstellte Objekt zugreifen, weil es ja keinen festgelegten Objektnamen hat. (Hoffe, ihr versteht, was ich meine:))
Beispiel:
Java:
public class Kontakt {

    //Eigenschaften
    public String name;
    public String telefonNummer;

    public Kontakt(String name, String telefonNummer) {
        this.name = name;
        this.telefonNummer = telefonNummer;
    }

    // Methoden
    public static Kontakt erstelleKontakt(String name, String telefonNummer) {

        return new Kontakt(name, telefonNummer);
    }
}


public static void main(String[] args) {
    List<Kontakt> kontaktListe = new ArrayList<Kontakt>();
    
    kontaktListe.add(erstelleKontakt("Silvia", "01111111"));
}




Vielleicht kann mir ja jemand weiterhelfen.
L.g Niklas
 

KonradN

Super-Moderator
Mitarbeiter
Ein Objekt / eine Instanz hat keinen Namen. Eine Variable ist benannt. Aber das hat nichts mit dem Objekt zu tun.

Stellen wir uns das etwas vor wie: Dir gehört ein Auto. Dein Name tut doch nichts zur Sache bezüglich des Autos. Und wenn Du deinen Namen änderst oder Du das Auto verschenkst: Ändert sich dadurch das Auto? Das ist dann nur etwas, um an das Auto heran zu kommen. Ich kann also zu Dir gehen und sagen: Gib mir Dein Auto.

Das Objekt verändert sich also auch nicht - egal wie viele Variablen darauf verweisen oder wie diese auch immer heissen. Das ist nur wichtig, um auf das Objekt zu zu greifen.
 

KonradN

Super-Moderator
Mitarbeiter
Du hast eine Variable mit der List. Und diese hält (in einem Array, also auch in einer Variable der List) dann das gesuchte Element. Zugriff darauf kann nur über die Möglichkeiten der List erfolgen. Ein Weg ist über den Index, aber List bietet noch ein paar Möglichkeiten mehr.
 

Wuast

Bekanntes Mitglied
Ich teste mein Wissen mal selber und hoffe, dass es richtig ist, was ich von mir gebe.

Ja und Nein.
Also kann ich nur über die ArrayList(Index) auf das Objekt drauf zugreifen. Außerhalb gibt es keinen weg?
Eine Liste ermöglicht es dir, einen Haufen von Objekten "zu sammeln". Du kannst die hinzufügen oder löschen aus der Liste, aber erzeugen kannst du sie ja außerhalb. Eine Liste ist ja selber auch ein Objekt. Wenn ein Objekt nicht nur über die Liste referenziert wird (glaube man könnte plakativ sagen "ansprechbar gemacht wird") kannst du auch auf anderen Wegen auf das Objekt zugreifen. Z.B. mit System.out.println(String).

Hoffe Konrad und die anderen Profis zerpflücken mich jetzt nicht :D bin selber noch nicht so fit (aber ich wollt auch mal versuchen zu helfen hehe)
 

niklas._.kpl

Mitglied
Ja genau.

(Bei den Variablen spricht man von Referenzen - daher dieses "referenziert". Das Objekt (die Instanz) liegt irgendwo im Speicher und es wird sozusagen in der Variable nur gespeichert, wo dieses zu finden ist.)
Habe gerade in meinem Code noch eine Zeile gefunden:
Java:
new Auto(4,20000); //Neues Auto-Objekt(Reifenanzahl, Preis)

auf dieses Objekt könnte ich dann auch nur zugreifen wenn ich das Objekt einer Variable zuweisen würde Richtig?
 

KonradN

Super-Moderator
Mitarbeiter
Habe gerade in meinem Code noch eine Zeile gefunden:
Java:
new Auto(4,20000); //Neues Auto-Objekt(Reifenanzahl, Preis)

auf dieses Objekt könnte ich dann auch nur zugreifen wenn ich das Objekt einer Variable zuweisen würde Richtig?
Ja genau. Ohne Referenz hast du keinen Zugriff mehr drauf (und wenn es sich nicht selbst irgendwo einträgt, dann würde der GC die neue Instanz auch wieder löschen - früher oder später, da dies nicht genau festgelegt ist).
 

berndoa

Top Contributor
Vielleicht sollte man auch einfahc mal nopch kurz das Wort "Aliasing" in den Raum werfen.
Was einfach nur heißt dass ein Objekt von verschiedenen Variabeln und Ähnlichem aus erreicht werden kann.
In deinem Beispiel wird das String Objekt mit Inhalt "Thomas" sowohl von der Variable name1 sowie auch von der ArrayList aus referenziert.

Heißt 2 Sahcen zeigen auf das Ein und Selbe Objekt.
Daher Aliasing da du bei
Java:
System.out.println(name1);
System.out.println(nameLsite.get(0);
2 mal genau Dasselbe ausgegeben bekomst, nämlich "Thomas".


So wie man in der realen Welt ja auch auf Dieselbe Person in verschiedenen Weisen Bezug nehmen kann,
wie "Anton Müller", "der Vater von Paul Müller", "der aktuelle Eigentümer des Autos mit Kennzeichen Js-3578", etc.

Diverse Möglichkeiten, die alle auf die selbe Sache zeigen.

Und wie Konrad und Co. sagen:
Zeigt gar Nichts mehr auf ein bestimmtes Objekt, dann ist es unerrechbar und Java beseitigt es intern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
S Operatoren i=i++; Was passiert hier? Java Basics - Anfänger-Themen 21
N Enum Typen, was passiert intern mit ihnen? Java Basics - Anfänger-Themen 2
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
S Unklarer Code (was passiert hier?) Java Basics - Anfänger-Themen 1
T Kann mir jemand sagen, was bei folgender for-Schleife passiert? Java Basics - Anfänger-Themen 1
V Was passiert in dem Programm? Java Basics - Anfänger-Themen 3
B Was passiert in dieser Methode? Java Basics - Anfänger-Themen 3
W Was passiert mit Objekten die nicht in Objektvariablen initialisiert werden ? Java Basics - Anfänger-Themen 3
T boolean, was passiert hier? Java Basics - Anfänger-Themen 4
G Was passiert bei einem Overflow von zwei Integer Java Basics - Anfänger-Themen 6
B Nichts passiert... Java Basics - Anfänger-Themen 4
C Klassen BubbleSort was passiert mit dem Index ? Java Basics - Anfänger-Themen 2
J Was passiert hier? Java Basics - Anfänger-Themen 6
D KeyListener, nichts passiert Java Basics - Anfänger-Themen 6
B Was passiert, wenn eine konkrete Klasse von generische Klasse erbt? Java Basics - Anfänger-Themen 14
F festlegen, was beim schließen des fensters passiert Java Basics - Anfänger-Themen 12
E DeSerialize von verändertem Object, was passiert? Java Basics - Anfänger-Themen 4
-horn- Was passiert, wenn Zähler über Integer Max läuft? Java Basics - Anfänger-Themen 9
G Was passiert mit eine Methode bei einer Instanz Java Basics - Anfänger-Themen 13
R Deklaration: was passiert da? Java Basics - Anfänger-Themen 3
G Was passiert "at compile time" Java Basics - Anfänger-Themen 3
M 2 Fragen: Vergleich, aber wie? Was passiert in diesem Teil? Java Basics - Anfänger-Themen 18
G Abstrakte Klasse (was passiert hier) Java Basics - Anfänger-Themen 3
G pow(double,double) was passiert bei pow(double,int) Java Basics - Anfänger-Themen 6
M Migration JUnit 3.8 -> 4.0, was passiert mit Testsuites? Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
M Arrayliste mit beliebig vielen Namen befüllen Java Basics - Anfänger-Themen 4
L loop für Namen Java Basics - Anfänger-Themen 11
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
F Jtree kürzt Namen auf ... Java Basics - Anfänger-Themen 4
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
S Variablen Flexible Variablen Namen Java Basics - Anfänger-Themen 3
N Konstruktoraufruf mit "variablem" Namen Java Basics - Anfänger-Themen 5
feinperligekohlensaeure Arraylisten-Namen iterieren.. wie ? Java Basics - Anfänger-Themen 39
S Objekte mit gleichem Namen in unterschiedlichen Klassen Java Basics - Anfänger-Themen 3
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
H Namen abgleichen Java Basics - Anfänger-Themen 3
M Datei-Namen aus .jar auslesen Java Basics - Anfänger-Themen 7
A Wie am effizientesten bzw. schnellsten Namen/Wörter sortieren? Java Basics - Anfänger-Themen 1
S Strings im Array nach Namen sortieren Java Basics - Anfänger-Themen 11
L Namen aus Textdatei auslesen Java Basics - Anfänger-Themen 1
J JLabels in schleife erzeugen mit verschiedenen namen? Java Basics - Anfänger-Themen 5
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
D Interface namen bekommen Java Basics - Anfänger-Themen 3
K Best Practice In Klassen auf andere Objekte mit variablen Namen zugreifen Java Basics - Anfänger-Themen 6
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
D String mit Integer Variablen Namen vergleichen, möglich? Java Basics - Anfänger-Themen 6
V Variablen/Objekt Namen hochzählen Java Basics - Anfänger-Themen 4
Kenan89 Nach Namen einer Klasse fragen Java Basics - Anfänger-Themen 6
O variablen String Namen Java Basics - Anfänger-Themen 11
B JFrame - Namen anzeigen Java Basics - Anfänger-Themen 2
K Klassen Objekt mit einem Namen von einer bestimmten Klasse instanziieren Java Basics - Anfänger-Themen 10
G Namen der Generic Klasse Java Basics - Anfänger-Themen 3
B Font Namen ermitteln Java Basics - Anfänger-Themen 7
Luk10 Package Namen Java Basics - Anfänger-Themen 5
M Input/Output Namen der Files aus einem Ordner MIT bestimmten Encoding auslesen? Java Basics - Anfänger-Themen 3
I Namen eines Elements aus 2 Variablen zusammenbasteln Java Basics - Anfänger-Themen 7
C Methoden mit wechselndem Namen in Schleife aufrufen Java Basics - Anfänger-Themen 11
A Gruppen von Namen erkennen Java Basics - Anfänger-Themen 21
J Pfad bzw. Namen einer Datei auslesen Java Basics - Anfänger-Themen 6
D Javamail - Absender-Namen einfügen? Java Basics - Anfänger-Themen 2
C AbstractTableModel Spalten-Namen Java Basics - Anfänger-Themen 3
M Package Namen ändern Java Basics - Anfänger-Themen 3
O Kann ich für Array-Namen Variablen verwenden? Java Basics - Anfänger-Themen 2
M Namen der Elemente auf ContentPane? Wie darauf zugreifen? Java Basics - Anfänger-Themen 2
B Konstruktor namen wird nicht erkannt Java Basics - Anfänger-Themen 9
H Expliziten Namen angeben Java Basics - Anfänger-Themen 2
G Namen von ArrayListen dynamisch erzeugen Java Basics - Anfänger-Themen 4
E Hilfed, ide bitte de Namen wählt Java Basics - Anfänger-Themen 5
P Namen Programm Java Basics - Anfänger-Themen 5
G Namen soriteren Java Basics - Anfänger-Themen 19
W Variable mit Namen aus Variablen deklarieren Java Basics - Anfänger-Themen 2
S Nach Namen sortieren und diese in 3 Gruppen aufteilen Java Basics - Anfänger-Themen 16
W Objekt-Namen aus Variablennamen erstellen Java Basics - Anfänger-Themen 7
G Welchen package-Namen wählen, wenn man keine Domain hat? Java Basics - Anfänger-Themen 11
P Suche Namen für eine Komponente Java Basics - Anfänger-Themen 13
F Kann man den Namen einer Variable in ein String Konvertieren Java Basics - Anfänger-Themen 2
G Eingegebene Namen sortieren Java Basics - Anfänger-Themen 2
G Namen alphabetisch sortieren Java Basics - Anfänger-Themen 3
M Namen der Dateien in einem bestimmten Verzeichnis erhalten Java Basics - Anfänger-Themen 4
D Welchen Namen darf ein Konstruktor haben? Java Basics - Anfänger-Themen 6
J Methode mit gleichem Namen in verebter Klasse und Interface Java Basics - Anfänger-Themen 5
T Namen und RGB Wert extrahieren? Java Basics - Anfänger-Themen 2
S einlesen von dateien mit var. namen Java Basics - Anfänger-Themen 6
G ArrayList mit Namen belegen Java Basics - Anfänger-Themen 5
R Finde meinen Fehler nicht! - Namen von Personen vergleichen Java Basics - Anfänger-Themen 6
G Objekt Namen dynamisch vergeben. Java Basics - Anfänger-Themen 7
M Namen der eigenen Klasse ermitteln Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben