Aufgabe 3.1: Sichtbarkeit von Variablen [10 Punkte] Betrachten Sie folgenden JAVA-Code: p u b l i c c l a s s Scope { s t a t i c i n t m( i n t a, i n t b) { i n t sum = a + b ; // *** 1 *** r e t u r n sum ; } s t a t i c c l a s s Vec3 { f l o a t x ,y , z ; void add ( Vec3 b ) { x += b . x ; y += b . y ; z += b . z ; // *** 2 *** } f l o a t sum () { f l o a t sum = x + y + z ; // *** 3 *** r e t u r n sum ; } } p u b l i c s t a t i c void main ( String args []) { i n t sum = 0; f o r ( i n t i = 0; i < 4; i ++) sum += i ; // *** 4 *** i f ( sum > 3) { i n t b = 3*7; sum = m ( sum , b ); // *** 5 *** } Vec3 p = new Vec3 (); p . x = p . y = -( p . z = 1); f l o a t x = p.x; // *** 6 *** Vec3 q = p ; q . y = 2; // *** 7 *** q = new Vec3 (); q . x = q . y = q . z = 2; q . add ( p ); // *** 8 *** } } ¨ Welche Variablen sind bei der Ausfuhrung des Codes jeweils an den mit *** x ***“ markierten ” ¨ Stellen gultig und welche Werte haben die Variablen? ¨ Hinweis fur Verbundtypen: Geben Sie an, welche Objekte existieren, welche Referenzen und wohin die Referenzen zeigen. Nummerieren Sie neue erzeugte Objekte einfach mit O1 , O2 , . . . durch. Beispiel: nach Vec3 p = new Vec3(); exisitert ein Objekt O1 vom Typ Vec3 und eine Referenz p, die auf O1 zeigt. ¨ Geben Sie innerhalb von Objektmethoden auch die Objektattribute an, die gerade gultig sind. Bei- spiel: in class Vec3 { float x,y,z; Vec3 Kreuzprodukt() { Vec3 prod = new Vec3(); // *** 1 *** ... } ... } sind an der Stelle *** 1 *** die Objektattribute oder Objektvariablen x, y und z bekannt. ¨ Geben Sie die aktuell definierten Variablen und Objekte als Tabelle an, fur obiges Beispiel an der Position *** 1 *** w¨ re dies: a Variablenname Typ Art Wert x float Objektvariable ... y float Objektvariable ... z float Objektvariable ... O1 Vec3 Objekt 0,0,0 prod Referenz auf Vec3 lokale Variable → O1