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

Informatiker Board » Themengebiete » Praktische Informatik » Typensicherheit » 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 5 Beiträge
eulerscheZahl

Es gibt keine Fehler, sondern nur Hinweise ("Note").
Für eine detailiertere Aussage sollst du es mit -Xlint neu kompilieren.
Was macht -Xlint?
man javac eingeben (keine Ahnung, ob das in Windows auch geht) öffnet die Hilfe.
Zitat:
-Xlint
Enable all recommended warnings. In this release, enabling all available warnings is recommended.


wenn du es mit -Xlint neu kompilierst, erhältst du:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
Zoo.java:5: warning: [rawtypes] found raw type: Haus
		Haus<Elefant> elefantenhaus = new Haus();
		                                  ^
  missing type arguments for generic class Haus<T>
  where T is a type-variable:
    T extends Object declared in class Haus
Zoo.java:5: warning: [unchecked] unchecked conversion
		Haus<Elefant> elefantenhaus = new Haus();
		                              ^
  required: Haus<Elefant>
  found:    Haus
Zoo.java:17: warning: [cast] redundant cast to Elefant
		waerter.elefantenBuersten((Elefant) elefantenhaus.verlassen());
		                          ^
3 warnings

Auf die Punkte hatte ich dich oben auch hingewiesen.
neuling96

"Das sagt doch schon alles: javac -Xlint *.java"
was genau bedeutet das?


vielen dank smile für dein angebot mit eclipse, darauf werde ich in 1-2 wochen zurückgreifen, denn bald beginnt beginnt die Klausurenphase und das verschlingt meine ganz freizeit
eulerscheZahl

Das sagt doch schon alles: javac -Xlint *.java
Deine Lösung ist gelungen, nur 2 Anmerkungen.
Haus<Elefant> elefantenhaus = new Haus<Elefant>(); //Typ in Konstruktor(sic!) angegeben.
waerter.elefantenBuersten(elefantenhaus.verlassen()); //cast unnötig.

Und wo scheiterst du bei eclipse? Ich rate dir wirklich, nimm dir die paar Minuten, das einzurichten, ich helfe auch.
neuling96

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
class Haus <T> {
 private T bewohner;

 public boolean belegt () {
 return this.bewohner != null;
 }

 public boolean betreten (T t) {
 if (this.bewohner != null) return false;
this.bewohner = t;
 return true;
 }

 public T verlassen () {
 T t = this.bewohner;
 this.bewohner = null;
 return t;
}
}





code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public class Zoo {
public static void main(String[] args) {
Haus<Elefant>elefantenhaus = new Haus();
 Elefant jumbo = new Elefant();
jumbo.trompeten();
 jumbo.fressen();
 elefantenhaus.betreten(jumbo);

 Waerter waerter = new Waerter();

 // als er gerade nicht hinsieht, passiert das:
 elefantenhaus.verlassen();
 elefantenhaus.betreten(new Muecke());

 waerter.elefantenBuersten((Elefant) elefantenhaus.verlassen());
 }
 }


allerdings haut das auch nicht hin also
veränderung von

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
public class Zoo {
public static void main(String[] args) {
Haus<Elefant> elefantenhaus = new Haus();
 Elefant jumbo = new Elefant();
jumbo.trompeten();
 jumbo.fressen();
 elefantenhaus.betreten(jumbo);

 //Waerter waerter = new Waerter();

 // als er gerade nicht hinsieht, passiert das:
 elefantenhaus.verlassen();
 elefantenhaus.betreten(new Elefant());

 //waerter.elefantenBuersten((Elefant) elefantenhaus.verlassen());
 }
 }


liefert

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

neuling96 Typensicherheit

gegben eine menge von codes
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
class Haus {
 private Tier bewohner;

 public boolean belegt () {
 return this.bewohner != null;
 }

 public boolean betreten (Tier t) {
 if (this.bewohner != null) return false;
this.bewohner = t;
 return true;
 }

 public Tier verlassen () {
 Tier t = this.bewohner;
 this.bewohner = null;
 return t;
}
}

code:
1:
2:
3:
4:
5:
6:
7:
8:
public class Tier {
public void fressen () {
 System.out.println("Omnomnom");
 }
}



code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public class Zoo {
public static void main(String[] args) {
Haus elefantenhaus = new Haus();
 Elefant jumbo = new Elefant();
jumbo.trompeten();
 jumbo.fressen();
 elefantenhaus.betreten(jumbo);

 Waerter waerter = new Waerter();

 // als er gerade nicht hinsieht, passiert das:
 elefantenhaus.verlassen();
 elefantenhaus.betreten(new Muecke());

 waerter.elefantenBuersten((Elefant) elefantenhaus.verlassen());
 }
 }


code:
1:
2:
3:
4:
5:
6:
7:
public class Muecke extends Tier {
 public void summen () {
System.out.println("Bzzzzzzz");
}
 }


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
public class Waerter {
 public Waerter (String n) {
 }

public void elefantenBuersten (Elefant e) {
e.fressen();
 e.trompeten();
 }
 }


code:
1:
2:
3:
4:
5:
6:
7:
 public class Elefant extends Tier {
 public void trompeten () {
 System.out.println("Toot!");
 }
 }



1.Bei Ablauf des Programmes Zoo wird ein Fehler auftreten
um welchen einen Fehler handelt es sich?

Waerter waerter = new Waerter(); // der Ausruf geht so nicht durch, da in der klasse waerter bereits ein Konstrukteur vorhaden ist und somit der Default Konstrukteur nicht erlaubt ist

Bei b) fehlt mir der komplette ansatz

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