[Java] Raumschiff aufgabe

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von allstar, 1. Dezember 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 1. Dezember 2010
    Raumschiff aufgabe

    hey leute, ich hab mal wieder ein (wahrscheinlich simples) problem aber ich kann einfahc den fehler nicht finden.

    meine aufgabe ist es zwei klassen und jeweils bestimmte methoden.

    einmal die klasse raumschiff mit den methoden abschleppen, fliegen und einmal die klasse raumstation mit der klasse reparieren.

    ich habe alle methoden fertig aber wenn ich die methode reparieren ausprobieren möchte, dann wird immer ein und das selbe raumschiff repariert obwohl ich die methode an ein ganz anderes raumschiff schicke.

    also hier einmal der code

    Class raumschiff
    PHP:
    public class  Raumschiff {

    public static 
    int x , y , z , serial ;
    public static 
    boolean beschädigt ;

    Raumschiff ( int iv , int iw int ix int iy , boolean iz ){ x = iv y = iw z = ix serial = iy beschädigt = iz ; }
    Raumschiff ( int a , int b int c int d ){ x = a y = b z = c serial = d beschädigt = false ; }

    public 
    void fliegen ( Raumschiff A ){
    x = A . x ;
    y = A . y ;
    z = A . z ;
    }


    public static 
    void abschleppen ( Raumschiff A Raumstation B ){
    if(
    x == A . &&  y == A . &&  z == A . z ){
    A . x = B . x ;
    A . y = B . y ;
    A . z = B . z ;
    }

    }

    public 
    void getStatus (){ System . out . println ( "Position " + "(" + x + "," + y + "," + z + ")" );
                            
    System . out . println ( "Seriennummer " + serial );
                            if(
    beschädigt ){ System . out . println ( "Raumschiff ist beschädigt" );}
                                      else{
    System . out . println ( "Raumschiff ist nicht beschädigt" );
    }
    }
    public 
    int getSerial (){return  serial ;};
    }

    und hier die class Raumstation

    PHP:
    class  Raumstation {

    public static 
    int x , y , z , nummer ;
    public static 
    boolean frei ;

    Raumstation ( int iv int iw int ix int iy boolean iz ){ x = iv y = iw z = ix nummer = iy frei = iz ; }

    public 
    void reparieren ( Raumschiff parameter ){
       if(
    x == parameter . &&  y == parameter . &&  z == parameter . z ){
       
            if(
    frei == true ){
                
    frei = false ;
                
    parameter . beschädigt = false ;
                
    System . out . println ( "Das Raumschiff " + parameter . getSerial ()+ " ist wieder bretriebsbereit" );}
                else{
                    
    System . out . println ( "Die Raumstation ist im Moment nicht verfügbar" );
                    }       
                }
        else{
        
    System . out . println ( "Die beiden Raumschiffe befinden sich nicht auf der selben Position" );
        }




    }
    public static 
    void main ( String []  args ){

    Raumschiff  []  Raumschiffe =new  Raumschiff [ 4 ];

    Raumschiffe [ 0 ]=new  Raumschiff ( 2 , 2 , 5 , 221 , true );
    Raumschiffe [ 1 ]=new  Raumschiff ( 6 , 7 , 8 , 222 , true );
    Raumschiffe [ 2 ]=new  Raumschiff ( 5 , 3 , 4 , 223 );
    Raumschiffe [ 3 ]=new  Raumschiff ( 1 , 1 , 1 , 224 );
    Raumschiff ADAC  = new  Raumschiff ( 7 , 7 , 7 , 5555 );

    Raumstation []  raumstationen =new  Raumstation [ 2 ];
    raumstationen  [ 0 ]=new  Raumstation ( 2 , 2 , 2 , 10 , true );
    raumstationen  [ 1 ]=new  Raumstation ( 4 , 4 , 4 , 15 , true );


    ADAC . abschleppen ( Raumschiffe [ 0 ], raumstationen [ 1 ]);
    raumstationen [ 0 ]. reparieren ( Raumschiffe [ 0 ]);




    }
    }
    in diesem teil wird mein problem deutlich

    PHP:
    ADAC . abschleppen ( Raumschiffe [ 0 ], raumstationen [ 1 ]); 
    raumstationen [ 0 ]. reparieren ( Raumschiffe [ 0 ]); 

    obwohl ich die methode für das raumschiff Raumschiffe[0] und die raumstation[0] aufrufe wird das raumschiff ADAC repariert

    ADAC ist das raumschiff, dass das beschädigte raumschiff zur raumstation abschleppen soll
     
  2. 1. Dezember 2010
    AW: Raumschiff aufgabe

    Das sieht nur so aus, da deine Membervariablen static sind.
    Es werden die richtigen Objekte angefasst, nur unterscheiden diese sich alle nicht.

    Lesen und verstehen: Galileo Computing :: Java ist auch eine Insel - index

    Gruß,
    Figger

    //EDIT: Die abschleppen-Methode ist btw auch fälschlicherweise static
     
  3. 3. Dezember 2010
    AW: Raumschiff aufgabe


    jo stimmt, hab es geändert und nun klappt es.

    bw ist raus


    mfg allstar
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.