25. august 2003 - 17:19
Der er
9 kommentarer og 1 løsning
Parameter eller metode problemer
Jeg har følgende klasse fra Horstmann: public class ExerciseP3_3Employee { public ExerciseP3_3Employee(String aNavn, double aLøn, double aLønF) { navn = aNavn; løn = aLøn; lønF = aLønF; } public void addNavn(String navn) { navn = navn; } public void addLøn(double iLøn) { løn = løn; } public void addLønFor(double iLønF) { lønF = løn*10/100; } public double getLøn() { return løn; } public double getLønFor() { return lønF; } public String getNavn() { return navn; } private double lønF; private double løn; private String navn; Denne skal returnere navn, løn og lønnen efter lønforhøjelse. Det skulle nedenstående klasse gøre. import java.io.*; public class ExerciseP3_3EmployeeTest { public static void main(String [] arg) { try { ExerciseP3_2Employee employee = new ExerciseP3_2Employee(); InputStreamReader readers = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(readers); System.out.println("Skriv dit navn "); String navn = console.readLine(); employee.addNavn(navn); System.out.println("Navn = " + employee.getNavn()); System.out.println("Skriv din løn "); String løn = console.readLine(); int iLøn = Integer.parseInt(løn); employee.addLøn(iLøn); System.out.print("Løn " + employee.getLøn()); System.out.println("Skriv din løn forhøjelse "); String lønF = console.readLine(); double iLønF = Double.parseDouble(lønF); employee.addLønFor(iLønF); System.out.print("Løn " + employee.getLønFor()); } catch(IOException e) { System.out.println(e); System.exit(1); } } } Men gør ikke. Horstmann skriver at der skal anvendes en default konstructor. Men det hjælper ikke. Mener jeg. Nogen som kan løse det? Fejl beskeden er: ExerciseP3_3EmployeeTest.java:27: cannot resolve symbol symbol : method addLønFor (double) location: class ExerciseP3_2Employee employee.addLønFor(iLønF); ^ ExerciseP3_3EmployeeTest.java:28: cannot resolve symbol symbol : method getLønFor () location: class ExerciseP3_2Employee System.out.print("Løn " + employee.getLønFor()); ^ 2 errors
Annonceindlæg fra Opentext
25. august 2003 - 17:39
#1
ExerciseP3_2Employee employee = new ExerciseP3_2Employee(); skal vel være ExerciseP3_3Employee employee = new ExerciseP3_3Employee(); hvis du har lavet en constructor med public ExerciseP3_3Employee(String aNavn, double aLøn, double aLønF) så skal den også oprettes sådan i ExerciseP3_3EmployeeTest klassen du skal nok lave den om til public ExerciseP3_3Employee() { navn = ""; løn = 0; lønF = 0; }
25. august 2003 - 17:40
#2
Det er også korrekt. ExerciseP3_2Employee employee = new ExerciseP3_2Employee(); compiler ikke når: public ExerciseP3_3Employee(String aNavn, double aLøn, double aLønF) { navn = aNavn; løn = aLøn; lønF = aLønF; } er enste constructor !
25. august 2003 - 17:42
#3
Enten skal du have 3 argumenter på i constructor kaldet eller du skal have lavet en constructor uden argumenter.
Slettet bruger
25. august 2003 - 17:43
#4
Kan man godt bruge æøå i metodenavne i java iøvrigt? Det må være en dårlig idé under alle omstændigheder.
25. august 2003 - 17:44
#5
Derudover er følgende linier: public void addNavn(String navn) { navn = navn; } public void addLøn(double iLøn) { løn = løn; } forkerte og skal være: public void addNavn(String navn) { this.navn = navn; } public void addLøn(double iLøn) { this.løn = løn; }
25. august 2003 - 17:45
#6
Ja man kan godt bruge ÆØÅ i navne i java. Og jeg er helt enig: gyselig ting.
25. august 2003 - 17:45
#7
det er en dårlig ide med danske tegn i medtode navne .. folk der bruger et tegnsæt uden æøå kan ikke læse dem.
25. august 2003 - 17:48
#8
lille fejl den sidste skal være > public void addLøn(double løn ) { this.løn = løn; } jeg ville iøvrigt bruge getLøn/setLøn
25. august 2003 - 20:37
#9
Tak for hjælpen. Men jeg forstår ikke helt det med det virkede da jeg fjernede parametrene. Heller ikke helt det med this. Men det kommer jeg vel til engang ;?
25. august 2003 - 21:12
#10
public void addNavn(String navn) { navn = navn; } gør absolut ingenting. public void addNavn(String navn) { this.navn = navn; } assigner argumentet til instans member variablen.
Kurser inden for grundlæggende programmering