Ik heb een klasse Artikel, met daarin de volgende code die van belang is:
En ik heb een applet met daarin verschillende invoervelden en een checkbox en een knop met uitvoeren. Nu wil ik 2 dezelfde artikelen aanmaken en dan de functie equals gebruiken om te kijken of ze gelijk zijn, dit doe ik als volgt:
voor de duidelijkheid, ik geef Artikel1 precies dezelfde parameters als Artikel2
Maar nu zegt hij dat het niet aan elkaar gelijk is, wat doe ik fout? Als ik Artikel2 niet aanmaak. Maar Artikel2 = Artikel1 dan doet hij het wel, maar als ik ze apart aanmaak, dan doen ze het niet...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public class Artikel
{
private Int Artikelnr; // Attributen
private String Artikelnaam;
private double Artikelprijs;
private boolean Artikelis;
public Artikel(Int artNr, String artNm, double artPr, boolean artIS) // Constructor
{
Artikelnr = artNr;
Artikelnaam = new String(artNm);
Artikelprijs = artPr;//.copy();
Artikelis = artIS;
}
public boolean equals(Artikel art) // Equals-method
{
return this.Artikelnr == art.Artikelnr; // Prim.Type
// && this.Artikelis == art.Artikelis // Prim.Type
// && this.Artikelnaam.equals(art.Artikelnaam); // Ref.Type
// && this.Artikelprijs.equals(art.Artikelprijs); // Ref.Type
} |
En ik heb een applet met daarin verschillende invoervelden en een checkbox en een knop met uitvoeren. Nu wil ik 2 dezelfde artikelen aanmaken en dan de functie equals gebruiken om te kijken of ze gelijk zijn, dit doe ik als volgt:
voor de duidelijkheid, ik geef Artikel1 precies dezelfde parameters als Artikel2
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| void artEqualKnop_actionPerformed(ActionEvent e)
{
Artikel1 = new Artikel(new Int(Integer.parseInt(artNrInvoerveld1.getText())),
artNaamInvoerveld1.getText(),
Double.parseDouble(artPrijsInvoerveld1.getText()),
artVoorraadCheckbox1.getState());
Artikel2 = new Artikel(new Int(Integer.parseInt(artNrInvoerveld1.getText())),
artNaamInvoerveld1.getText(),
Double.parseDouble(artPrijsInvoerveld1.getText()),
artVoorraadCheckbox1.getState());
if (Artikel1.equals(Artikel2))
{
label3.setText("Getallen zijn gelijk aan elkaar");
}
else
{
label3.setText("Getallen zijn NIET gelijk aan elkaar");
}
} |
Maar nu zegt hij dat het niet aan elkaar gelijk is, wat doe ik fout? Als ik Artikel2 niet aanmaak. Maar Artikel2 = Artikel1 dan doet hij het wel, maar als ik ze apart aanmaak, dan doen ze het niet...
[ Voor 7% gewijzigd door Verwijderd op 23-12-2005 09:03 ]