Java
-
- Berichten: 41
Re: Java
Ik probeer een constructor aan te roepen en krijg de volgende foutmelding bij het creëren van een instantie van de klasse Product.
De foutmelding: Error: empty character literal
De code:
public class Product
{
private double prijs;//Prijs van het product.
private int aantal;//Aantal items van dit product in voorraad.
private String naam;//Naam van dit product.
private char productKlasse;//A:premium, B:medium, C: huis
private boolean bewaarInKoelcel;//Gekoeld bewaard?
/**
* Constructor voor objecten van Klasse Product.
* @param naam De naam van het product.
* @param prijs De prijs van dit product.
* @param klasse De productklasse van het product.
* @param aantal Het aantal items van het product.
*/
public Product(String naam, double prijs, char klasse, int aantal)
{
this.naam = naam;
this.prijs = prijs;
this.aantal = aantal;
productKlasse = klasse;
bewaarInKoelcel = false;
}
/**
* Geeft de naam van het product terug.
* @return De naaam van het product.
*/
public String getNaam()
{
return naam;
}
/**
* Geeft het aantal items in voorraad van het product.
* @return Aantal items in voorraad.
*/
public int getAantal()
{
return aantal;
}
/**
* Stelt de prijs in van het product.
* @param prijs De nieuwe prijs van het product.
*/
public void setPrijs(double prijs)
{
this.prijs = prijs;
}
/**
* Het product toevoegen of verwijderen uit de koelcel.
* @param bewaarInKoelcel True indien te bewaren in de koelcel, anders false.
*/
public void setBewaarInKoelcel(boolean bewaarInKoelcel)
{
this.bewaarInKoelcel = bewaarInKoelcel;
}
/**
* Berekent de prijs incl. BTW-bedrag van een aantal items van dit product.
*
* @param aantal Aantal items van dit product.
* @param btwTarief Het BTW-tarief [0,1] van dit product.
* @return De prijs incl. BTW van een aantal items van dit product.
*/
public double berekenPrijsBTW(int aantal, double btwTarief)
{
return (aantal * prijs * (1 + btwTarief));
}
/**
* Berekent de nettowaarde van de voorraad van dit product.
* @return De nettowaarde van de voorraad van dit product.
*/
public double berekenNettoVoorraadWaarde()
{
return aantal * prijs;
}
}
Ik ga ervan uit dat ik iets in de code fout heb staan, alle parameters worden op de juiste manier ingevoegd.
Bij voorbaat dank!
De foutmelding: Error: empty character literal
De code:
public class Product
{
private double prijs;//Prijs van het product.
private int aantal;//Aantal items van dit product in voorraad.
private String naam;//Naam van dit product.
private char productKlasse;//A:premium, B:medium, C: huis
private boolean bewaarInKoelcel;//Gekoeld bewaard?
/**
* Constructor voor objecten van Klasse Product.
* @param naam De naam van het product.
* @param prijs De prijs van dit product.
* @param klasse De productklasse van het product.
* @param aantal Het aantal items van het product.
*/
public Product(String naam, double prijs, char klasse, int aantal)
{
this.naam = naam;
this.prijs = prijs;
this.aantal = aantal;
productKlasse = klasse;
bewaarInKoelcel = false;
}
/**
* Geeft de naam van het product terug.
* @return De naaam van het product.
*/
public String getNaam()
{
return naam;
}
/**
* Geeft het aantal items in voorraad van het product.
* @return Aantal items in voorraad.
*/
public int getAantal()
{
return aantal;
}
/**
* Stelt de prijs in van het product.
* @param prijs De nieuwe prijs van het product.
*/
public void setPrijs(double prijs)
{
this.prijs = prijs;
}
/**
* Het product toevoegen of verwijderen uit de koelcel.
* @param bewaarInKoelcel True indien te bewaren in de koelcel, anders false.
*/
public void setBewaarInKoelcel(boolean bewaarInKoelcel)
{
this.bewaarInKoelcel = bewaarInKoelcel;
}
/**
* Berekent de prijs incl. BTW-bedrag van een aantal items van dit product.
*
* @param aantal Aantal items van dit product.
* @param btwTarief Het BTW-tarief [0,1] van dit product.
* @return De prijs incl. BTW van een aantal items van dit product.
*/
public double berekenPrijsBTW(int aantal, double btwTarief)
{
return (aantal * prijs * (1 + btwTarief));
}
/**
* Berekent de nettowaarde van de voorraad van dit product.
* @return De nettowaarde van de voorraad van dit product.
*/
public double berekenNettoVoorraadWaarde()
{
return aantal * prijs;
}
}
Ik ga ervan uit dat ik iets in de code fout heb staan, alle parameters worden op de juiste manier ingevoegd.
Bij voorbaat dank!
-
- Berichten: 41
Re: Java
Product Product1 = new Product(2.50, 2, ''Product1'', 'A', false);
Dit is het stukje code waarmee ik een instantie wou aanmaken van de klasse product en waarmee de constructor dus aangeroepen werd.
Bedankt Evilbro!
Maar ik vraag me af, zou mijn IDE dan niet een fout moeten weergeven op het moment dat ik de code compileer?
De code is volgens mijn IDE goed, alleen zodra ik de constructor aanroep om een object te creëren krijg ik de desbetreffende foutmelding.
De melding heeft volgens mij te maken met de eerste string.
Maar ik ben echt een beginner met programmeren, dus zeker weet ik het niet.
Dit is het stukje code waarmee ik een instantie wou aanmaken van de klasse product en waarmee de constructor dus aangeroepen werd.
Bedankt Evilbro!
Maar ik vraag me af, zou mijn IDE dan niet een fout moeten weergeven op het moment dat ik de code compileer?
De code is volgens mijn IDE goed, alleen zodra ik de constructor aanroep om een object te creëren krijg ik de desbetreffende foutmelding.
De melding heeft volgens mij te maken met de eerste string.
Maar ik ben echt een beginner met programmeren, dus zeker weet ik het niet.
-
- Berichten: 7.068
Re: Java
Er is sowieso iets raars gaande. Jouw constructor:
Ik tel 4 argumenten (String, double, char, int)
Jouw aanroep:Ik tel 5 argumenten (double, int, String, char, boolean). Bovendien is de volgorde anders dan bij de constructor.
Ik vermoed overigens dat het probleem is dat je twee single quotes probeert te gebruiken als double quote (dus 2 keer ' in plaats van ").
Code: Selecteer alles
Product(String naam, double prijs, char klasse, int aantal)
Jouw aanroep:
Code: Selecteer alles
Product Product1 = new Product(2.50, 2, ''Product1'', 'A', false);
Ik vermoed overigens dat het probleem is dat je twee single quotes probeert te gebruiken als double quote (dus 2 keer ' in plaats van ").
-
- Berichten: 41
Re: Java
Ik heb inderdaad hier een fout gemaakt, dit is de code die ik als laatst gebruikt heb om de constructor aan te roepen.
Het was inderdaad niet de bedoeling om deze te plaatsen, maar ik realiseerde me dit pas nadat ik hem hier al geplaatst had.
Ik heb meerdere malen geprobeerd de constructor aan te roepen met vier argumenten voor de String, double, char & int, gezien dat niet lukte een eenmalige poging met een waarde voor Bewaarinkoelcel (ik werd wat wanhopig en hoopte het probleem te verhelpen hiermee, vraag me niet waarom).
Ook heb ik inderdaad met de volgorde zitten puzzelen, dit omdat als ik de volgorde van de constructor aanhield het tevens niet werkte.
Ook gebruik ik de juiste leestekens, dat weet ik zeker.
de dubbele quotes zijn zeker gebruikt voor de String naam.
Heel erg bedankt voor je reactie tho!
Ik heb tevens mijn argument voor de String naam nog even bekeken, hij staat inderdaad tussen ".
Is er misschien iets anders aan de hand?
Het was inderdaad niet de bedoeling om deze te plaatsen, maar ik realiseerde me dit pas nadat ik hem hier al geplaatst had.
Ik heb meerdere malen geprobeerd de constructor aan te roepen met vier argumenten voor de String, double, char & int, gezien dat niet lukte een eenmalige poging met een waarde voor Bewaarinkoelcel (ik werd wat wanhopig en hoopte het probleem te verhelpen hiermee, vraag me niet waarom).
Ook heb ik inderdaad met de volgorde zitten puzzelen, dit omdat als ik de volgorde van de constructor aanhield het tevens niet werkte.
Ook gebruik ik de juiste leestekens, dat weet ik zeker.
de dubbele quotes zijn zeker gebruikt voor de String naam.
Heel erg bedankt voor je reactie tho!
Ik heb tevens mijn argument voor de String naam nog even bekeken, hij staat inderdaad tussen ".
Is er misschien iets anders aan de hand?
-
- Berichten: 41
Re: Java
Een van de opdrachten in het boek luidt;
''In de onderstaande tabel vind je de beschrijvingen van velden van klassen. Schrijf telkens de declaratie van het veld.''
''Declareer een veld dat bijhoudt of de lichten aan een spoorwegovergang rood of wit zijn.''
Nou hebben we in de cursus alleen nog maar met Strings, char, int, boolean & double gewerkt en met het schrijven van de constructor van de klasse, accessormethode en mutatormethode.
Ik vind het best moeilijk deze vraag momenteel te beantwoorden want als ik erover nadenk, lijkt het me dat ik iets met een if statement moet doen.
Een duwtje in de goede richting zou gewaardeerd worden!
''In de onderstaande tabel vind je de beschrijvingen van velden van klassen. Schrijf telkens de declaratie van het veld.''
''Declareer een veld dat bijhoudt of de lichten aan een spoorwegovergang rood of wit zijn.''
Nou hebben we in de cursus alleen nog maar met Strings, char, int, boolean & double gewerkt en met het schrijven van de constructor van de klasse, accessormethode en mutatormethode.
Ik vind het best moeilijk deze vraag momenteel te beantwoorden want als ik erover nadenk, lijkt het me dat ik iets met een if statement moet doen.
Een duwtje in de goede richting zou gewaardeerd worden!
-
- Berichten: 12.262
Re: Java
Dat lijkt me wel, maar welke onderwijsmethode maakt het zo moeilijk dat een basaal if/else statement een probleem is voordat je gaat lopen klooien met classes, constructors en dergelijke?
Dat bedoel ik overigens niet lullig, het iets dat ik in de praktijk vaker zie: mensen die alles weten over object oriented programmeren, over classes, variable scopes en dergelijke, maar feitelijk nog moeite hebben om 20 regels procedurele code te schrijven.
Dat bedoel ik overigens niet lullig, het iets dat ik in de praktijk vaker zie: mensen die alles weten over object oriented programmeren, over classes, variable scopes en dergelijke, maar feitelijk nog moeite hebben om 20 regels procedurele code te schrijven.
Victory through technology
-
- Berichten: 41
Re: Java
Ik had zelf ook een hoop frustratie toen deze opdracht voorbij kwam, meer gezien het feit dat ik op pagina 20 zit momenteel en hiermee net het 2e hoofdstuk heb afgesloten.
In dit hoofdstuk hebben we eigenlijk geleerd om de basis van je klasse te kunnen programmeren maar het voelt echt alsof er een hoop mist, daar komt voornamelijk mijn frustratie vandaan. Dit was namelijk een van de 'herhalingsopdrachten'.
Dit boek is wel specifiek gericht op OOP en ik ben zo goed als bij de beginselen nog, dus hopelijk wordt hier later meer op in gegaan.
Ik kan me volledig inleven in je opmerking, want ik vind het momenteel zeer lastig om bij zo'n opdracht een code te vormen.
Fijn dat je me vraag beantwoord hebt, ik zat nog te twijfelen of ik misschien een accessormethode moest gebruiken i.p.v. het bovenstaande.
In dit hoofdstuk hebben we eigenlijk geleerd om de basis van je klasse te kunnen programmeren maar het voelt echt alsof er een hoop mist, daar komt voornamelijk mijn frustratie vandaan. Dit was namelijk een van de 'herhalingsopdrachten'.
Dit boek is wel specifiek gericht op OOP en ik ben zo goed als bij de beginselen nog, dus hopelijk wordt hier later meer op in gegaan.
Ik kan me volledig inleven in je opmerking, want ik vind het momenteel zeer lastig om bij zo'n opdracht een code te vormen.
Fijn dat je me vraag beantwoord hebt, ik zat nog te twijfelen of ik misschien een accessormethode moest gebruiken i.p.v. het bovenstaande.