R
reyz
Gast
hallo,
ich sitze grad seit 2h an der vererbung von 2 init methoden und komm kein stück weiter.
lage:ich habe eine oberklasse mit 2 init methoden,die eine soll daten vom benutzerabfrage,die andere stellt quasi nur den rohbau für die unterklasse die von der klasse mit der mainmethode angesprochen wird und die "testdaten" übergeben bekommt .meine oberklasse sieht so aus:
public class Wertpapier{
public int wkn;
private String emittent;
private int rating;
private int emissionsjahr;
public boolean istUnethisch;
public double kurswert;
//Benutzerabfrage
public void init(int wpnummer){
wkn = wpnummer;
//System.out.println("Bitte Wertpapierkennnummer eingeben! ");
//wkn = Tools.intEingabe();
System.out.println("Bitte Emittenten eingeben! ");
emittent = Tools.stringEingabe();
System.out.println("Bitte das Rating eingeben!");
rating = Tools.intEingabe();
System.out.println("Bitte Emissionsjahr eingeben!");
emissionsjahr = Tools.intEingabe();
System.out.println("Bitte eingeben, ob Wertpapier unethisch!");
istUnethisch = Tools.booleanEingabe();
System.out.println("Bitte Kurswert eingeben!");
kurswert = Tools.doubleEingabe();
}
//Wertübergabe
public void init(int xwkn, String xemittent, int xrating, int xemissionsjahr, boolean xistUnethisch, double xkurswert){
wkn=xwkn;
emittent=xemittent;
rating=xrating;
emissionsjahr=xemissionsjahr;
istUnethisch=xistUnethisch;
kurswert=xkurswert;
}
public void ausgeben(){
System.out.println("Wertpapierkennnummer: "+wkn+", Emittent: "+emittent+", Rating: "+rating+", Emissionsjahr: "+emissionsjahr+", ist unethisch: "+istUnethisch+", Kurswert: "+kurswert+" ");
}
}
nun habe ich eine unterklasse ,die beide init methoden übernehmen und ergänzen soll.zu meiner überraschung kriege ich nicht mal die methode mit der benutzerabfrage zum laufen,von der ,welche daten aus der mainmethodenklasse übergeben bekommt mal ganz zu schweigen.hier meine unterklasse:
public class Aktie extends Wertpapier {
private double nennwert;
private boolean istVorzugsaktie;
private double putPreis;
public double divErwartungswert;
//abfrage
public void init(int akNummer){
wkn=akNummer;
super.init(int wpnummer);
System.out.println("Bitte den Nennwert eingeben!");
nennwert = Tools.doubleEingabe();
System.out.println("Bitte eingeben ob Vorzugsaktie!");
istVorzugsaktie = Tools.booleanEingabe();
System.out.println("Bitte Putpreis eingeben!");
putPreis = Tools.doubleEingabe();
System.out.println("Bitte den Dividendenerwartungswert eingeben!");
divErwartungswert = Tools.doubleEingabe();
}
//Werteübergabe aus Fondmanager-test
public void init(int xwkn, String xemittent, int xrating, int xemissionsjahr, boolean xistUnethisch, double xkurswert,double a,boolean b, double c, double d){
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
nennwert = a;
istVorzugsaktie = b;
putPreis = c;
divErwartungswert = d;
}
public void ausgeben(){
super.ausgeben();
System.out.println("Nennwert: "+nennwert+", Vorzugsaktie: "+istVorzugsaktie+", Putpreis: "+putPreis+", Dividendenerwartungswert: "+divErwartungswert+" ");
}
das sind die fehlermeldungen,die ich beim kompilieren bekomme:
Aktie.java:14: '.class' expected
super.init(int wpnummer);
^
Aktie.java:14: ')' expected
super.init(int wpnummer);
^
Aktie.java:29: '.class' expected
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
^
Aktie.java:29: ')' expected
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
^
Aktie.java:14: unexpected type
required: value
found : class
super.init(int wpnummer);
^
Aktie.java:29: unexpected type
required: value
found : class
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
^
6 errors
falls es hilft:ich schreibe mit kate in ner kde umgebung unf nem unix rechner.
ich habe schon so ziemlich alles an variationen versucht.jede init methode einzeln,die () leer gelassen,die init methoden uber eine menu methode aufgerufen usw.
das sind die terstdaten,die übergeben werden sollen:
private void testAktienLaden(){
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"VW AG",1,1967,true,20.0,23.0,false,19.3, 2.1);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Beate Kruse",2,1999,true,6.0,5.0,false,15.4, 0.2);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Thomas Kuck",2,1995,false,43.45,35.0,false,65.7, 9.2);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"DeimlerKreisler",1,1929,false,19.45,45.0,false,20.34, 2.9);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"H.Kraus und P.Maffay",3,1965,true,700.34,45.0,true,1000.0, 154.87);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Kwelle",3,1975,false,34.74,5.0,true,38.0, 4.87);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"MayerSchaering",3,2006,false,25.74,30.0,true,32.0, 15.96);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Frestlee",3,1935,true,78.35,10.0,true,90.0, 12.48);
this.akZeiger++;
this.akNummer++;
}
bin für JEDE anregung dankbar und probiers dann gleich aus.
btw:meine tutorin meinte das meine übernahme init methode so aussehen müsste:
public void init (alle Variablen){
super.init(Variablen der Klasse Wertpapier);
Variablen der Klasse Aktie
finde das es bei mir genauso ausschaut.
ich sitze grad seit 2h an der vererbung von 2 init methoden und komm kein stück weiter.
lage:ich habe eine oberklasse mit 2 init methoden,die eine soll daten vom benutzerabfrage,die andere stellt quasi nur den rohbau für die unterklasse die von der klasse mit der mainmethode angesprochen wird und die "testdaten" übergeben bekommt .meine oberklasse sieht so aus:
public class Wertpapier{
public int wkn;
private String emittent;
private int rating;
private int emissionsjahr;
public boolean istUnethisch;
public double kurswert;
//Benutzerabfrage
public void init(int wpnummer){
wkn = wpnummer;
//System.out.println("Bitte Wertpapierkennnummer eingeben! ");
//wkn = Tools.intEingabe();
System.out.println("Bitte Emittenten eingeben! ");
emittent = Tools.stringEingabe();
System.out.println("Bitte das Rating eingeben!");
rating = Tools.intEingabe();
System.out.println("Bitte Emissionsjahr eingeben!");
emissionsjahr = Tools.intEingabe();
System.out.println("Bitte eingeben, ob Wertpapier unethisch!");
istUnethisch = Tools.booleanEingabe();
System.out.println("Bitte Kurswert eingeben!");
kurswert = Tools.doubleEingabe();
}
//Wertübergabe
public void init(int xwkn, String xemittent, int xrating, int xemissionsjahr, boolean xistUnethisch, double xkurswert){
wkn=xwkn;
emittent=xemittent;
rating=xrating;
emissionsjahr=xemissionsjahr;
istUnethisch=xistUnethisch;
kurswert=xkurswert;
}
public void ausgeben(){
System.out.println("Wertpapierkennnummer: "+wkn+", Emittent: "+emittent+", Rating: "+rating+", Emissionsjahr: "+emissionsjahr+", ist unethisch: "+istUnethisch+", Kurswert: "+kurswert+" ");
}
}
nun habe ich eine unterklasse ,die beide init methoden übernehmen und ergänzen soll.zu meiner überraschung kriege ich nicht mal die methode mit der benutzerabfrage zum laufen,von der ,welche daten aus der mainmethodenklasse übergeben bekommt mal ganz zu schweigen.hier meine unterklasse:
public class Aktie extends Wertpapier {
private double nennwert;
private boolean istVorzugsaktie;
private double putPreis;
public double divErwartungswert;
//abfrage
public void init(int akNummer){
wkn=akNummer;
super.init(int wpnummer);
System.out.println("Bitte den Nennwert eingeben!");
nennwert = Tools.doubleEingabe();
System.out.println("Bitte eingeben ob Vorzugsaktie!");
istVorzugsaktie = Tools.booleanEingabe();
System.out.println("Bitte Putpreis eingeben!");
putPreis = Tools.doubleEingabe();
System.out.println("Bitte den Dividendenerwartungswert eingeben!");
divErwartungswert = Tools.doubleEingabe();
}
//Werteübergabe aus Fondmanager-test
public void init(int xwkn, String xemittent, int xrating, int xemissionsjahr, boolean xistUnethisch, double xkurswert,double a,boolean b, double c, double d){
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
nennwert = a;
istVorzugsaktie = b;
putPreis = c;
divErwartungswert = d;
}
public void ausgeben(){
super.ausgeben();
System.out.println("Nennwert: "+nennwert+", Vorzugsaktie: "+istVorzugsaktie+", Putpreis: "+putPreis+", Dividendenerwartungswert: "+divErwartungswert+" ");
}
das sind die fehlermeldungen,die ich beim kompilieren bekomme:
Aktie.java:14: '.class' expected
super.init(int wpnummer);
^
Aktie.java:14: ')' expected
super.init(int wpnummer);
^
Aktie.java:29: '.class' expected
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
^
Aktie.java:29: ')' expected
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
^
Aktie.java:14: unexpected type
required: value
found : class
super.init(int wpnummer);
^
Aktie.java:29: unexpected type
required: value
found : class
super.init(int wkn, String emittent, int rating, int emissionsjahr, boolean istunEthisch, double kurswert);
^
6 errors
falls es hilft:ich schreibe mit kate in ner kde umgebung unf nem unix rechner.
ich habe schon so ziemlich alles an variationen versucht.jede init methode einzeln,die () leer gelassen,die init methoden uber eine menu methode aufgerufen usw.
das sind die terstdaten,die übergeben werden sollen:
private void testAktienLaden(){
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"VW AG",1,1967,true,20.0,23.0,false,19.3, 2.1);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Beate Kruse",2,1999,true,6.0,5.0,false,15.4, 0.2);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Thomas Kuck",2,1995,false,43.45,35.0,false,65.7, 9.2);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"DeimlerKreisler",1,1929,false,19.45,45.0,false,20.34, 2.9);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"H.Kraus und P.Maffay",3,1965,true,700.34,45.0,true,1000.0, 154.87);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Kwelle",3,1975,false,34.74,5.0,true,38.0, 4.87);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"MayerSchaering",3,2006,false,25.74,30.0,true,32.0, 15.96);
this.akZeiger++;
this.akNummer++;
this.aktien[akZeiger] = new Aktie();
this.aktien[akZeiger].init(akNummer,"Frestlee",3,1935,true,78.35,10.0,true,90.0, 12.48);
this.akZeiger++;
this.akNummer++;
}
bin für JEDE anregung dankbar und probiers dann gleich aus.
btw:meine tutorin meinte das meine übernahme init methode so aussehen müsste:
public void init (alle Variablen){
super.init(Variablen der Klasse Wertpapier);
Variablen der Klasse Aktie
finde das es bei mir genauso ausschaut.