ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1009
1009
EMPFEHLEN
-
Hallo!

Ich habe mir zum Java-Lernen das "Handbuch der Javaprogrammierung" gekauft und kann es auch weiterempfehlen. Allerdings gibt es da das Problem, dass das Buch die Begriffe "Instanz" und "Objekt" synonym verwendet und darauf hinweißt, dass nur Puristen einen Unterschied machen.
Jetzt suche ich den Unterschied, aber leider verweisen die meisten Definitionen des einen Begriffs wiederrum auf den Anderen.
ein Objekt ist eine bestimmte Instanz einer KlasseKennt jemand die genaue Unterscheidung oder zumindest treffsichere Definitionen?...instanziert Ihre Anwendung Objekte auf Grundlage der Klasse...
-
09.11.10 15:51 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
aus dem Bauch raus würde ich die Begriffe auch als Synonym verwenden.
Streng genommen gibt es aber einen kleinen Unterschied (Klick)
Wie man das Ganze allerdings in verständlichem Deutsch ausdrücken kann, da bin ich jetzt überfragt
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Das zu unterscheiden, kann durchaus wichtig sein.. man sollte das nicht untern Teppich kehren!
Ich probiers mal anschaulich zu erklären,...
Du bist Kunstlehrer und willst deine Schüler benoten, ... weil du sparsam bist, holst du nur ein Blatt(Objekt) aus deiner Tasche. Nun darf Schüler1 das Objekt benutzen, danach Schüler2,.. bis Schüler33.
Jetzt hat jeder Schüler das gleiche Objekt(das Papier) gehabt und es geändert. ...Nun steckst du es ein und benotest es, musst aber allen die gleiche Note geben, weil jeder daran mitgearbeitet hat.
Wärst du nicht so sparsam, dann hätte jeder Schüler sein eigenes Papier(Objekt) bekommen und du hättest am Ende nicht allen die gleiche Note geben müssen.
Im ersten Fall hat jeder Schüler die Instanz des Objektes gehabt und im 2ten jeder ein eigenes.
bin nicht gut in simpel erklären
spätestens, wenn du einmal damit ein Fehler machst, und dich wunderst, warum alle Objekte im Array gleich sind, obwohl sie beim hinzufügen anders waren, merkste dir das...
Geändert von Herbertus (09.11.10 um 16:03 Uhr)
-
Also ist ein Objekt eine Abbildung einer Klasse, und wenn man mehrere gleiche Objekte hat sind das Instanzen des Objekts****
Also Objekt ist der Überbegriff der Abbildung, während Instanz eine Ausgabe eines Objekts ist?
Oder hab ich das falsch verstanden?
EDIT: Oder wenn es nach Bratkartoffels Link geht:
Instanz ist die Abbildung einer Klasse. Objekt auch, aber es bezeichnet gleichzeitig einen bestimmten Speicherplatz, auf dem eine Instanz, eben dieses Objekt, sitzt. Das richtig?
Geändert von Syrill (09.11.10 um 16:06 Uhr) Grund: 1. Antwort übersehen...
-
ein CodeBeispiel, vllt. wird es so klar
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
import java.util.ArrayList; public class test4 { public static void main(String[] args) { // Eine ArrayListe, welche Double-Arrays aufnimmt ArrayList<double[]> al = new ArrayList<double[]>(); // Ein Double-Array-Objekt erstellen wir uns hier double[] d = new double[3]; // Wir wollen 10mal ,d' in der Liste haben for(int i = 0; i < 10;i++){ for(int j = 0; j < 3;j++){ d[j] = i; } // fügen d hinzu al.add(d); } for(int i = 0; i < al.size();i++){ for(int j = 0; j < 3;j++){ System.out.println(al.get(i)[j]); } } } }
Die Ausgabe ist immer 9.0, weil wir das Objekt d nur 1mal haben, aber es immer ändern und al nur die Instanz addet.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
import java.util.ArrayList; public class test4 { public static void main(String[] args) { // Eine ArrayListe, welche Double-Arrays aufnimmt ArrayList<double[]> al = new ArrayList<double[]>(); // Wir wollen 10mal ,d' in der Liste haben for(int i = 0; i < 10;i++){ // Ein Double-Array-Objekt erstellen wir uns hier double[] d = new double[3]; for(int j = 0; j < 3;j++){ d[j] = i; } // fügen d hinzu al.add(d); } for(int i = 0; i < al.size();i++){ for(int j = 0; j < 3;j++){ System.out.println(al.get(i)[j]); } } } }
Hier erzeugen wir uns immer ein neues Objekt, was wir dann hinzufügen....
edit:
Siehe mein CodebeispielGeändert von Herbertus (09.11.10 um 16:20 Uhr)
-
Hmm.....
Also eigentlich laut Java Language Specification 4.3.1
Ein Objekt ist entweder eine Instanz einer Klasse oder ein Array.An object is a class instance or an array.
The reference values (often just references) are pointers to these objects, and a special null reference, which refers to no object.
Variablen halten Referenzen auf Objekte.
Herbertus spricht von Referenzen auf die Objekte.
Auch hier im Original nachzulesen: http://java.sun.com/docs/books/jls/s...alues.doc.html
Die Begriffe die im Buch verwendet werden, sind damit korrekt.
Ähnliche Themen
-
Prüfen um welche Objekt-Instanz es sich handelt?
Von Kai008 im Forum JavaAntworten: 2Letzter Beitrag: 03.08.08, 16:33 -
Instanz von Objekt lösen
Von Jan-Frederik Stieler im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 04.04.07, 02:09 -
Objekt Instanz erzeugen ohne Konstruktor aufzurufen
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 30.03.07, 00:25 -
Objekt nachträglich als Instanz definieren
Von Jan-Frederik Stieler im Forum 3D Studio MaxAntworten: 1Letzter Beitrag: 09.11.06, 20:05 -
Instanz Objekt vom Master Objekt lösen?
Von the-cR im Forum 3D Studio MaxAntworten: 7Letzter Beitrag: 14.04.02, 03:05





Zitieren


Login





