[Progra] Übung 5, Aufgabe 1

[Progra] Programmierung
[DSAL] Datenstrukturen und Algorithmen
[SWT] Softwaretechnik
[DB] Datenbanken und Informationssysteme

Übung 5, Aufgabe 1

Beitragvon Der Fuß » 21.11.07 18:31

Ich bin mir noch unsicher, was das für ein Programm ist
Sind copy und subtract Methoden in der Klasse A? Oder ist A ein Objekt?
Benutzeravatar
Der Fuß
 
Beiträge: 114
Registriert: 27.10.07 17:11

Beitragvon paul » 21.11.07 18:36

Also meiner Meinung nach ist A eine Klasse und auch ein Objekt, wobei es aber mehrer Objekte A gibt.

public class A Klasse A

jedes new A() erzeugt eine neues Objekt A

und copy() und substract() sind Methoden der Klasse A
paul
 
Beiträge: 59
Registriert: 14.11.07 15:49
Wohnort: Aachen
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 08/09
Anwendungsfach: Mathe

Beitragvon Der Fuß » 21.11.07 18:40

Danke, übrigens haben wir im selben Moment einen neuen thread eröffnet!
Benutzeravatar
Der Fuß
 
Beiträge: 114
Registriert: 27.10.07 17:11

Beitragvon paul » 21.11.07 18:43

ja, ich weiß ;-)
paul
 
Beiträge: 59
Registriert: 14.11.07 15:49
Wohnort: Aachen
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 08/09
Anwendungsfach: Mathe

Beitragvon thana » 21.11.07 18:45

Also meiner Meinung nach ist A eine Klasse und auch ein Objekt, wobei es aber mehrer Objekte A gibt.

A ist eine Klasse. Es gibt Objekte *von* der Klasse A, aber deshalb ist A kein Objekt!
Ein Kuchen ist ja auch kein Kuchenrezept
public class A Klasse A

jedes new A() erzeugt eine neues Objekt A

Nein, es erzeugt ein Exemplat der Klasse A!
thana
 
Beiträge: 264
Registriert: 18.10.07 17:01

Beitragvon Der Fuß » 21.11.07 18:52

Könnte man sagen, dass das Objekt der Klasse A den Namen res hat?
Benutzeravatar
Der Fuß
 
Beiträge: 114
Registriert: 27.10.07 17:11

Beitragvon theTux » 21.11.07 18:58

paul hat geschrieben:jedes new A() erzeugt eine neues Objekt A

new A() erzeugt ein Objekt (gebräuchlicher: eine Instanz) der Klasse A.
Ein Objekt A gibt es so nicht.
Stur lächeln und... oh, falscher Pinguin.
Benutzeravatar
theTux
 
Beiträge: 577
Registriert: 15.01.06 16:41

Beitragvon theTux » 21.11.07 19:00

Der Fuß hat geschrieben:Könnte man sagen, dass das Objekt der Klasse A den Namen res hat?

Das wäre zumindest missverständlich. Genaugenommen hat die Referenz auf das Objekt der Klasse A den Namen res.
Stur lächeln und... oh, falscher Pinguin.
Benutzeravatar
theTux
 
Beiträge: 577
Registriert: 15.01.06 16:41

Beitragvon thana » 21.11.07 19:02

Nein, Objekte haben keine Namen.
Code: Alles auswählen
res
ist der Name einer Variablen, die eine Referenz auf ein Objekt des Typs
Code: Alles auswählen
A
enthält.
Warum man nicht sagen kann, dass das Objekt so heißt wird auch aus folgenden Beispielen klar:
Code: Alles auswählen
new A()

ist ein korrekter und auch häufig verwendetes Konstrukt. Nach dieser Zeile hat man zwar keinen Zugriff mehr auf das Objekt (es sei denn das Objekt registriert sich selbstständig irgendwo), aber dennoch wird der Konstruktor ausgeführt.
Code: Alles auswählen
A res, foo; res = new A(); foo = res;

Und nun hat das Objekt 2 Namen?
Code: Alles auswählen
res = null;

und nun den Namen ganz gewechselt?
thana
 
Beiträge: 264
Registriert: 18.10.07 17:01

Beitragvon thana » 21.11.07 19:03

theTux hat geschrieben:Das wäre zumindest missverständlich. Genaugenommen hat die Referenz auf das Objekt der Klasse A den Namen res.

Auch falsch (siehe mein vorheriges Posting)
thana
 
Beiträge: 264
Registriert: 18.10.07 17:01

Beitragvon theTux » 21.11.07 19:10

thana hat geschrieben:Auch falsch (siehe mein vorheriges Posting)

Ahja.... darf ich fragen, welchen Namen die Referenz dann hat?
Stur lächeln und... oh, falscher Pinguin.
Benutzeravatar
theTux
 
Beiträge: 577
Registriert: 15.01.06 16:41

Beitragvon Der Fuß » 21.11.07 19:12

Ok, und was genau ist foo? Ich dachte, dass würde im Programm keine Rolle spielen und dient nur als Beispiel?
Benutzeravatar
Der Fuß
 
Beiträge: 114
Registriert: 27.10.07 17:11

Beitragvon thana » 21.11.07 19:19

theTux hat geschrieben:
thana hat geschrieben:Auch falsch (siehe mein vorheriges Posting)

Ahja.... darf ich fragen, welchen Namen die Referenz dann hat?

Die hat ebensowenig einen Namen wie das Objekt selbst, /res/ ist eine Variable die eine Referenz aufnehmen kann
thana
 
Beiträge: 264
Registriert: 18.10.07 17:01

Beitragvon thana » 21.11.07 19:20

Der Fuß hat geschrieben:Ok, und was genau ist foo? Ich dachte, dass würde im Programm keine Rolle spielen und dient nur als Beispiel?

foo ist einfach nur IRGENDEINE andere Variable um zu verdeutlichen, dass der Name einer Variablen in keinem Zusammenhang mit einem etaigen Namen eines Objekts oder einer Referenz hat.
thana
 
Beiträge: 264
Registriert: 18.10.07 17:01

Beitragvon theTux » 21.11.07 19:23

thana hat geschrieben:Die hat ebensowenig einen Namen wie das Objekt selbst, /res/ ist eine Variable die eine Referenz aufnehmen kann

Okay, man kann natürlich Korinthen kacken... Da jede Referenz genau einer Variable zugewiesen ist, ist es aber denke ich kein Problem, wenn man den Namen für Variable UND Referenz verwendet. Ist einfacher und weniger verwirrend - die Aufgabe ist verwirrend genug. ;-)
Stur lächeln und... oh, falscher Pinguin.
Benutzeravatar
theTux
 
Beiträge: 577
Registriert: 15.01.06 16:41

Nächste

Zurück zu Praktische Informatik