This post has been edited 1 times, last edit by "Uprooter" (Aug 18th 2004, 5:28pm)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Der Vererbungspfad einer Klasse ist grob gesagt die Liste aller Superklassen dieser Klasse. Beispiel: Die Klasse HashSet hat die Vererbungshierarchie java.lang.Object -- java.util.AbstractCollection -- java.util.AbstractSet -- java.util.HashSet (siehe http://java.sun.com/j2se/1.4.2/docs/api/…il/HashSet.html, ganz oben).Quoted
Original von Uprooter
kann mir vllt jemand erklären wann gecastet werden darf und wann nicht, dh wann es fehlschlägt und wieso?
im skript steht zwar der folgende satz, aber ich versteh den sinn noch so wirklich:• Ein Cast schlägt fehl, wenn der Zieltyp nicht im Vererbungspfad des Objektes vorkommt oder wenn er kein implementiertes Interface ist.
This post has been edited 2 times, last edit by "Joachim" (Aug 21st 2004, 3:19pm)
Quoted
Original von Uprooter
also darf man zB eine Instanz von Object in alles beliebige casten oder eher in gar nichts, weil object ja die höchste klasse ist?
This post has been edited 1 times, last edit by "migu" (Aug 21st 2004, 8:42pm)
This post has been edited 1 times, last edit by "Uprooter" (Aug 22nd 2004, 6:12pm)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Letzteres. Anschauliche Erklärung: Bei jeder Vererbung ist die neu entstandene Klasse ja "spezieller" als die Superklasse. Beispiel String und Object: String ist "spezieller" als Object. Jede String-Instanz ist auch eine Object-Instanz, aber nicht jede Object-Instanz ist auch eine String-Instanz.Quoted
Original von Uprooter
also darf man zB eine Instanz von Object in alles beliebige casten oder eher in gar nichts, weil object ja die höchste klasse ist?
This post has been edited 1 times, last edit by "Joachim" (Aug 22nd 2004, 8:01pm)
This post has been edited 1 times, last edit by "DominionMADz" (Aug 22nd 2004, 11:53pm)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Das obige liefert zumindest keinen Fehler bei der Übersetzung. Das ist auch gut so, da zur Laufzeit der Methode compare Objekte a und b übergeben werden können, die man nach Integer casten kann. Es gibt jedoch einen Laufzeitfehler, wenn man die Methode compare mit Argumenten aufruft, die nicht typkombatibel zu Integer sind. Fehler zur Übersetzungs- und Laufzeit sind also zu trennen.Quoted
Original von Uprooter
wieso darf ich dann sows tun?:
public int compare(Object a,Object b) {
int m = ((Integer)a).intValue();
int k = ((Integer)b).intValue();
if(m <k) return 1;
else if(m > k) return -1;
return 0;}
}
hier caste ich a in Integer.....und a ist n Object
This post has been edited 4 times, last edit by "Joachim" (Aug 23rd 2004, 12:27am)
Quoted
Original von Flu
Ich hab nochmal eine ganz andere Frage, warum liefert folgendes Java-Programm den Wert "3.0", anstatt des von mir erwarteten "3.14"?
public class Round
extends java.lang.Object
{
public static void main(String[] args) {
double wert = 3.1415; //ein beliebiger Beispielwert
wert = (Math.round(wert * 100)) / 100;
System.out.println(wert);
}
}
This post has been edited 3 times, last edit by "migu" (Aug 23rd 2004, 4:23pm)
Senior Schreiberling
Date of registration: Jul 5th 2003
Location: Malaga
Occupation: Senior Cloud Solution Engineer bei Oracle
Quoted
Original von Torrero
Ich hab mir mal diese Übungsklausur reingezogen, kann es sein, dass es größtenteils um Java-Theorie geht, statt um das Erstellen von Programmen selbst ?
This post has been edited 1 times, last edit by "Informatik Minister" (Aug 26th 2004, 9:26am)