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 tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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