Ein paar java Fragen

Ich arbeite gearde ein paar (ca. 100 Fragen) zu Java durch.
Die meisten konnte ich ohne Hilfe und google Lösen, aber bei denen komme ich nicht weiter.
Könnt ihr sie mir beantworten? Danke sehr.

  Wie   werden Objekte als Parameter von Methoden übergeben und welche Konsequenzen   haben inhaltliche Änderungen?       

Wie werden primitive Datentypen als Parameter von Methoden übergeben und welche Konsequenzen haben inhaltliche Änderungen?
Wie werden Objekte kopiert und welche Methode der Superklasse Object sollte man dazu überschreiben?
Welche Typen von Objekten können ArrayLists und Vectoren speichern?
Können in einem ArrayList verschiedene Typen von Objekten gespeichert werden?

Da es hier um Testfragen geht, geb ich mal keine Antworten…

Stichworte um weiter zu suchen: By reference? Oder by value?

Siehe oben.

Da könnte Dir dieser Artikel weiterhelfen. Ich hab ihn nur überflogen; wenn der nicht ganz so toll ist liefert er zumindest die richtigen Suchbegriffe: Object Cloning in Java

Die Frage ist eigentlich sehr unmisverständlich formuliert. Was verstehst Du nicht?

Was denkst Du denn?

Ebenius

Antwort zu Frage 1 und 2

Call by value
Der Parameter einer Methode entspricht eriner lokalen Variable, die bei Aufruf mit dem übergebenen Wert initialisiert wird (Parameter-Kopie). Ändert eine Methode den Parameter, so betrifft dies nur ihre lokale Kopie, nicht die übergebene Variable. In Java werden alle primitiven Datentypen per Call by value übergeben.

Call by reference
Paramter werden als Verweis auf eine Variable übergeben. Ändert eine Methode den Parameter, so ist auch die übergebene Variable geändert. In Java werden Objekte als Zeiger übergeben, so dass Änderungen immer global gelten.

Frage 3
Dadurch, dass clone()
Die Voraussetzung für das Kopieren mit clone() ist, dass die betreffende Klasse das Interface Cloneable implementier

Frage 4 und 5
Eine Array-List kann alle Objekt-Typen speichern

Alte Petze… Christian wollte doch nur Hilfe haben und selber lernen… :slight_smile:

Ebenius

hi,

das war ich, hatte nur den Namen vergessen.
Scheint also richtig zu sein, oder?

Nein, nicht alles richtig.

Zu Frage 1: In Java werden sowohl Objekt-Referenzen als auch primitive Typen als Wert (by value) übergeben. Man kann zwar den Inhalt eines übergeben Objektes verändern, man kann es aber nicht so neu zuweisen, dass sich beim Aufrufenden die Referenz verändert (das wäre dann by reference).

Zu Frage 4: Keine Ahnung, ob das vom Fragesteller erwartet wird. Man könnte umformulieren: Sowohl ArrayList-Instanzen als auch Vector-Instanzen können jede beliebige Objekt-Referenz aufnehmen; inklusive null-Referenz.

Ebenius

Danke für deine freundliche, schnelle und kompetente Hilfe.

Eine Frage habe ich noch, die mir bei meinen Javaübungen aufgefallen ist.

Was ist beim Koordinatensystem in der Computergrafik im Vergleich zum
karthesischen Koordinatensystem zu beachten?

Bildschirmkoordinaten sind links(x)/oben(y) 0×0 und steigen nach rechts(x) und unten(y) an. Das karthesische kennst Du ja sicher.

Ebenius

Danke, das war auch meine Vermutung.
Das karthesische kenne ich ja noch aus dem matehunterricht.