Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Schiff verebung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 8 Beiträge
eulerscheZahl

Ja, dann landest du im else-Teil.
Und mit Compilierzeit hat das nichts zu tun - der Compiler hat schließlich keine Ahnung, mit welchen Kommandozeilenargumenten du das aufrufen willst.
neuling96

Zitat:
Original von eulerscheZahl
Wenn du einer Klasse nicht sagst, dass sie von einer anderen erbt, dann erbt sie automatisch von Object. Und das hat eben ein toString().


das vergesse ich immer wieder.. alle erben von Object


Schiff c;
if(args.length == 0){
c = s2;
}
else{
c = s3;
}
System.out.println("c: " + c.toString());

wenn ich java Schifffahrt.java xyz ausführe dann
c=s3 zweig ausgeführt

args ist doch ein Stringarray und folgt mit args=xyz -> args.length ungleich 0
alles soweit doch richtig???

aber was hat das mit complierzeit zutun?
eulerscheZahl

Wenn du einer Klasse nicht sagst, dass sie von einer anderen erbt, dann erbt sie automatisch von Object. Und das hat eben ein toString().
neuling96

Zitat:
Original von eulerscheZahl
Woher kann denn das toString() kommen, wenn das Schiff ausscheidet? Hat das Schiff vielleicht eine Basisklasse?


Ehrlich gesagt keine Ahnung.
Ich habs doch nur in Schiff class tostring() def. und alle andere class greifen auf tostring von Schiff zurück
eulerscheZahl

Woher kann denn das toString() kommen, wenn das Schiff ausscheidet? Hat das Schiff vielleicht eine Basisklasse?
neuling96

vielen dank

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
public class Schifffahrt
{
  public static void main(String[] args)
  {
    final int S1_TONNAGE = 1000;
    final int S2_TONNAGE = 2000;
    final int S2_SEGELFLAECHE = 200;
    final int S3_TONNAGE = 3000;
    final int S3_MOTORLEISTUNG = 30;
    
    Schiff s1 = new Schiff(S1_TONNAGE);
    Segelschiff s2 = new Segelschiff(S2_TONNAGE,S2_SEGELFLAECHE);
    Motorschiff s3 = new Motorschiff(S3_TONNAGE,S3_MOTORLEISTUNG);
    
    System.out.println("s1: " + s1.toString());
    // s1: Schiff[tonnage=1000]
    
    System.out.println("s2: " + s2.toString());
    // s2: Segelschiff[segelflaeche=200, Schiff[tonnage=2000]]
    
    System.out.println("s3: " + s3.toString());
    // s3: Motorschiff[motorleistung=30, Schiff[tonnage=3000]]
    
    Schiff c;
    if(args.length == 0){
      c = s2;
    }
    else{
      c = s3;
    }
    System.out.println("c:  " + c.toString());
  }

}





code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public class Motorschiff extends Schiff{
private int Motorleistung;

public Motorschiff(int Tonnage, int Motorleistung){
super(Tonnage);
this.Motorleistung=Motorleistung;
}
public String toString(){
return "Motorschiff[Motorleistung=" +this.Motorleistung +","+super.toString()+"]"; 
}


}


bei den nächsten teilaufgaben bin ich überfragt

neuling96 hat dieses Bild (verkleinerte Version) angehängt:
Unbenanntd.jpg

eulerscheZahl

code:
1:
public Segelschiff{int Tonnage, int Segelflaeche){

da hattest du irrtümlich ein Semikolon.

code:
1:
2:
3:
public String toString(){
return "["+"segelflaeche" + "=" +this.Segelflaeche +","+"Schiff"+"["+"tonnage" + "="+ super(Tonnage) +"]"+"]"; 
}

das geht nicht, da Tonnage private ist und zum Schiff gehört, nicht zum Segelschiff.

code:
1:
2:
3:
public String toString() {
    return "Segelschiff[segelflaeche=" +this.Segelflaeche +","+super.toString()+"]"; 
}
neuling96 Schiff verebung

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
public class Schifffahrt
{
  public static void main(String[] args)
  {
    final int S1_TONNAGE = 1000;
    final int S2_TONNAGE = 2000;
    final int S2_SEGELFLAECHE = 200;
   
    
    Schiff s1 = new Schiff(S1_TONNAGE);
    Segelschiff s2 = new Segelschiff(S2_TONNAGE,S2_SEGELFLAECHE);
    
    
    System.out.println("s1: " + s1.toString());
    // s1: Schiff[tonnage=1000]
    
    System.out.println("s2: " + s2.toString());
    // s2: Segelschiff[segelflaeche=200, Schiff[tonnage=2000]]
    
  
  }

}





code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public class Schiff{
private  int Tonnage;

public Schiff(int Tonnage){
this.Tonnage=Tonnage;
}



public String toString(){
return "Schiff"+"["+"tonnage" + "="+ this.Tonnage +"]";
}
}


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
public class Segelschiff extends Schiff{
private int Segelflaeche;

public Segelschiff{int Tonnage; int Segelflaeche){
super(Tonnage);
this.Segelflaeche=Segelflaeche;
 }

public String toString(){
return "["+"segelflaeche" + "=" +this.Segelflaeche +","+"Schiff"+"["+"tonnage" + "="+ super(Tonnage) +"]"+"]"; 
}
}


ich hab leider keine ahnung wie den fehler beseitigen kann

neuling96 hat diese Bilder (verkleinerte Versionen) angehängt:
Unbenannt.jpg Unbenannt.jpg Unbenanntd.jpg