Archief - [PROG]JAVA vraagske over opdracht (simpele maar geen uitleg gekregen).

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Ice

Legacy Member
@daigon Dit werkt omdat je binnen de klasse Euro dingen vraagt aan een ander instantie van klasse Euro

@pieke
Code:
     public void setEurocent (int eurocent) {
         while (eurocent > 99) {
             eurocent = eurocent-100 ;
             euro ++ ; }
         this.eurocent=eurocent ;
     }
Lees hierboven nog eens het verschil tussen % en / (resp. rest bij gehele deling en gehele deling). Dit kan wel met een lusstructuur maar is zeker NIET aan te raden.

Pieke zei:
Heb sinds dit jaar programmeerlessen maar de uitleg laat te wensen over tijdens de lessen. Er wordt amper iets van uitleg gezegd vindt ik, enkel als je vragen stelt bij oefeningen dan leggen ze het wel uit
1) vinD ik
2) Programmeren is voor een groot deel zelfstudie, zelf dingen uitzoeken is hier dus echt wel doodnormaal.
3) Ik vinD het wel straf dat je kan oordelen over de kwaliteit van de lessen terwijl je het basisconcept van een method nog niet doorhebt.

Emerxill

Legacy Member
daigon zei:
Raar dat het werkt volgens de private definitie zou het niet mogen, want private mag niet rechtreeks uitgelezen worden dit zijn OO encapsulation voorwaarden. Private is enkel gekend door de klasse zelf en kan door niemand aan de klasse gevraagd worden hiervoor dienen de getter en setters.

ook al is het op klasse en niet op object niveau, het is ook duidelijker als je getters gebruikt.

Het werkt omdat die variable in dezelfde klasse is gedefinieerd. At compile time allesinds :p. Maar ik zou ook met setters werken. Is alles behalve duidelijk.

Als ge die instance gaat gebruiken in een andere klasse gaat em klagen over visibility.

forloRn_

Legacy Member
Hier moet ik Killgore bijtreden hoor. Als een getter/setter nog iets anders doet dan simpelweg een member teruggeven/wijzigen, dan gebruik je de getter/setter ook in de klasse zelf. Doet hij dat niet, dan spreek je de member rechtstreeks aan. Wat maakt het uit dat de ene instance zomaar in een andere instance van dezelfde klasse zijn members mag zitten rommelen? Het gaat tenslotte om dezelfde code.

Pieke

Legacy Member
Ice zei:
@daigon Dit werkt omdat je binnen de klasse Euro dingen vraagt aan een ander instantie van klasse Euro

@pieke
Code:
     public void setEurocent (int eurocent) {
         while (eurocent > 99) {
             eurocent = eurocent-100 ;
             euro ++ ; }
         this.eurocent=eurocent ;
     }
Lees hierboven nog eens het verschil tussen % en / (resp. rest bij gehele deling en gehele deling). Dit kan wel met een lusstructuur maar is zeker NIET aan te raden.

mja daarin heb je wel gelijk + we hebben nog geen while gezien :)

int hulpv ;
if (eurocent > 99) {
hulpv = eurocent/100 ;
eurocent = eurocent%(hulpv*100) ;
euro = euro + hulpv ; }
this.eurocent = eurocent ;
}

ik denk dat je zoiets bedoelt dus. die hulpv was voor het mezelf wat simpeler te maken.


heb ook ineens invoer beperkt tot enkel positieve getallen :)

MilM

Legacy Member
this.eurocent = eurocent % 100;
euro = euro + eurocent/100;

Die twee regels zijn in feite voldoende.
'a = a + b;' kan men trouwens verkort schrijven als 'a += b;'

Tweede regel wordt dan: euro += eurocent/100;

dJeez

Legacy Member
killgore zei:
Daarnaast, gezien dit echt geen slechtere of onduidelijkere code geeft pas ik altijd het zo toe, vond het gewoon raar dat iedereen hier met accessors werkte :/.
Nog nooit moeten refactoren zeker? Dan zal je merken dat werken via getters en setters doorgaans (de uitzonderingen bevestigen de regel) echt wel beter is dan rechtstreeks aanspreken van de variabelen :p.

Voor het simplistische voorbeeld dat hier wordt gegeven maakt het inderdaad niet uit, voor complexere code zou ik echter steeds met getters en setters werken.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan