# Ist der Name eines Ojekts eine Eigenschaft



## Farin (15. Okt 2003)

Ich habe heute meine erste Klassenarbeit zu Java geschrieben und unter anderem wurde gefragt welche Objekte verwendet wurden und was deren Eigenschaften sind. Nun behauptet meine Lehrerin das der Name eines Objekts (z.B. String *string1*) eine Eigenschaft ist. So weit ich jedoch weiß muss eine Eigenscaft veränderbar sein und als Variable in der Klasse des Objekts deklariert sein denn sonst ware ja bei "int Zahl1" Zahl1 eine Eigenschaft!? Was stimmt nun bitte helft mir :roll: 

Farin


----------



## stev.glasow (23. Okt 2003)

deins stimmt.

sagen wir du hast eine klasse javafan. und machst damit follgendes:

javafan stevg = new javafan("Stev Glasow");
stevg.alter = 88;

dann ist stevg ein objekt und alter eine eigenschaft.


----------



## bygones (14. Mai 2004)

das fällt mir erst etzt auf - stevg ist schon verdammt alt  :roll:  :autsch:


----------



## P3AC3MAK3R (14. Mai 2004)

stevg hat gesagt.:
			
		

> deins stimmt.
> 
> sagen wir du hast eine klasse javafan. und machst damit follgendes:
> 
> ...


Die Klassennamen schreiben wir aber doch besser weiterhin groß.


----------



## Gast (14. Apr 2005)

Hmmm, am Anfang hatte ich die gleiche Idee wie stevg. Nichtdestotrotz hab' ich ein wenig recherchiert (ist nichts los heute auf der Arbeit ). Man kann hier durchaus geteilter Meinung sein. Das Free On-line Dictionary of Computing (www.dictionary.net) definiert Attribut (Eigenschaft) so:

attribute
   A named value or relationship that exists for some or
   all instances of some entity and is directly associated
   with that instance.

WordNet (r) 1.7 definiert eine Eigenschaft so:

attribute (noun)
1: a construct whereby objects or individuals can be distinguished; "self-confidence is not an endearing property" [syn: property, dimension] 
2: an abstraction belonging to or characteristic of an entity 

Der Name eines Objektes erfuellt diese Definitionen und auch andere (Oxford Dictionary, Duden der Informatik) und ist somit ein Attribut des Objektes. Somit ist also in der OOP der Fall klar. In Java liegt die Sache etwas anders:

Das Java Glossary (http://mindprod.com/jgloss/attribute.html) sieht die Sache so:

attribute 
An instance or static variable, usually called a field. It is the term used in Eiffel and some other OO languages. In Meyer's definition, there is no implication of public, but some people use the term only for public variables. 

Damit waehre der Name des Objekts keine Eigenschaft des Objekts. 

Du solltest Deine Lehrerin fragen in welchem Kontext (allgemeine OOP oder Java) sie ihre Behauptung aufstellt um den Disput zu klaeren.

Ich persoenlich wuerde mich aber auch der Java Meinung anschliessen und den Namen des Objekts als einen Bezeichner - also etwas was nicht zum Object gehoert (wie ein Variablenname) - betrachten.


----------



## Java Lover (5. Jun 2005)

*hehe* find ich lustig die diskussion

wie sollte denn ein variablenname zu einem objekt gehören. ein objekt kann natürlich einen namen haben in der form objekt.name, aber damit ein objekt mit dem namen arbeiten kann muss es ja schließlich darauf zugreifen können, was natürlich nur möglich ist, wenn es sich um ein attribut des objektes handelt.

eine interessante überlegung wäre ja beispiels weiße zu welchem objekt folgende variable gehört

```
String name;
```
ok könnten ja manche meinem zum nullobjekt *lach*

so um das nochmal etwas deutlicher darzustellen ist eine variable ein platzhalter für eine bestimmte art von datentyp. also gehört zu einer variable ein datentyp (objekt), nicht anderherrum, was leicht zu belegen ist, da es für ein und dasselbe objekt ja mehrere variablen geben kann. also folgendermaßen

```
Klasse name1 = new Klasse();
Klasse name2 = name1;
```
welche der variablen gehört nun zu dem einen!! objekt, name1 oder name2. kann also gar nicht sein.

viel spaß beim überreden deiner lehrerin, wenn du das nicht schon hinter dir hast.

cu


----------



## LazyBoy (18. Jun 2005)

^^du hast das gut erkannt. Ein Objekt hat keinen Namen. Es gibt natürlich Bezeichner die auf ein Objekt zeigen (referenzieren), aber das ist nicht der Name des Objekts. Wie oben bereits erwähnt können ja zwei völlig unterschiedliche Bezeichner auf ein und dasselbe Objekt zeigen. Dann hätte das Objekt ja zwei Namen, und das ist natürlich totaler Schwachsinn. Wenn deine Lehrerin das behauptet, dann hat sie keine Ahnung von Programmiersprachen.


----------



## devent00 (1. Dez 2005)

Farin hat gesagt.:
			
		

> Ich habe heute meine erste Klassenarbeit zu Java geschrieben und unter anderem wurde gefragt welche Objekte verwendet wurden und was deren Eigenschaften sind. Nun behauptet meine Lehrerin das der Name eines Objekts (z.B. String *string1*) eine Eigenschaft ist. So weit ich jedoch weiß muss eine Eigenscaft veränderbar sein und als Variable in der Klasse des Objekts deklariert sein denn sonst ware ja bei "int Zahl1" Zahl1 eine Eigenschaft!? Was stimmt nun bitte helft mir :roll:
> 
> Farin



hmm ansich können doch nur Klassen Atribute/Eigenschaften haben, Objekte sind Instanzen einer Klasse. string1 ist nur ein Platzhalter für die Speicheradresse, wo eine Instanz der Klasse String gespeichert ist. Die einzige Eigenschaft/Attribute die Objekte haben, ist die Adresse die sie abspeichern.
Das man trotzdem sowas wie string1.substr() schreiben kann ist doch nur eine Vereinfachung der Sprache.


----------

