[Progra] Frage zu Musterlösung 8 Aufgabe 1a

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

Frage zu Musterlösung 8 Aufgabe 1a

Beitragvon Anand » 08.01.09 22:17

Hi,

hab eine Frage zur Aufgabe 1a.

Bei OUT 5: muss da nicht y = -5.0 -32 = -37.0 stehen??

Gruss
Anand
Anand
 
Beiträge: 90
Registriert: 15.01.07 20:56

Beitragvon Coolcat » 09.01.09 00:39

Solche Fragen kann man leicht selbst beantworten indem man das Programm laufen lässt...was natürlich nicht heißt das man sich nicht erstmal von Hand da durchdenken sollte.

Datei Main.java
Code: Alles auswählen
class A {
   public static int x = 7;
   public int y = -4;

   public A ( ) {
      x = 3* x + 1 ;
   }

   public A ( int z ) {
      x = z - x;
   }

   public void f ( int z ) {
      x += 2 ;
      y -= 2 ;
   }
       
   public void g ( double z ) {
      x += 4 ;
      y -= 4 ;
   }

   public void h ( int z ) {
      x += 8 ;
      y -= 8 ;
   }

}

class B extends A {
   public double y = 1.0;
   private int w = 2 ;

   public B ( int z ) {
      super(1);
      y += x ;
      x += z ;
   }

   public void f ( double z ) {
      x += 16 ;
      y -= 16 ;
   }

   public void g ( int z ) {
      x += 32 ;
      y -= 32 ;
   }

   public void h ( int z ) {
      x += 64 ;
      y -= 64 ;
   }
}

public class Main {
   public static void main ( String [ ] args ) {
      A a = new B ( 5 ) ;
      // OUT:
      System.out.println("1. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      a.f(2);
      // OUT:
      System.out.println("2. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      ((B)a ).f(2);
      // OUT:
      System.out.println("3. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      a.g(2);
      // OUT:
      System.out.println("4. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      ((B)a ). g (2);
      // OUT:
      System.out.println("5. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      a.h(2);
      // OUT:
      System.out.println("6. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      ((B)a ). h (2);
      // OUT:
      System.out.println("7. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
      B b = new B ( -3);
      a = b;
      // OUT:
      System.out.println("8. A.x="+A.x+", a.y="+a.y+ ", ((B)a).y="+((B)a).y+", b.y="+b.y);
   }
}


Code: Alles auswählen
[coolcat@q9300 ~]$ javac Main.java
[coolcat@q9300 ~]$ java Main
1. A.x=-1, a.y=-4, ((B)a).y=-5.0
2. A.x=1, a.y=-6, ((B)a).y=-5.0
3. A.x=3, a.y=-8, ((B)a).y=-5.0
4. A.x=7, a.y=-12, ((B)a).y=-5.0
5. A.x=39, a.y=-12, ((B)a).y=-37.0
6. A.x=103, a.y=-12, ((B)a).y=-101.0
7. A.x=167, a.y=-12, ((B)a).y=-165.0
8. A.x=-169, a.y=-4, ((B)a).y=-165.0, b.y=-165.0



((B)a).y ist was anderes als a.y!!!!
My software never has bugs. It just develops random features.
Benutzeravatar
Coolcat
Promoter
 
Beiträge: 2574
Registriert: 28.11.05 21:26
Wohnort: Kohlscheid / Düsseldorf
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: BWL


Zurück zu Praktische Informatik