All pastes #769718 Raw Edit

Anonym

public text v1 · immutable
·published 2007-11-11 17:13 UTC
rendered paste body
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