Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: java oefening  (gelezen 40441 keer)

0 leden en 1 gast bekijken dit topic.

Offline roche55nl

  • Nieuw lid
  • Berichten: 1
  • Geslacht: Man
  • Oplossing.be
java oefening
« Gepost op: 05 maart 2019, 23:52:15 »
Beste mensen,

kan iemand mij aub helpen met deze java-oefening?
ik heb het volgende gedaan:
---------------------------------------------------------------------------------------------
public class Persoon {
private String naam;
private String voornaam;
private int postcode;
private int leeftijd;

    public Persoon(String naam, String voornaam, int postcode, int leeftijd) {
        this.naam = naam;
        this.voornaam = voornaam;
        this.postcode = postcode;
        this.leeftijd = leeftijd;
    }

    @Override
    public String toString() {
        return "Persoon: " + "naam: " + naam + ", voornaam: " + voornaam + ", postcode: " + postcode + ", leeftijd: " + leeftijd + '.';
    }

    public void setPostcode(int postcode) {
        this.postcode = postcode;
    }

    public String getNaam() {
        return naam;
    }

    public String getVoornaam() {
        return voornaam;
    }

    public int getPostcode() {
        return postcode;
    }

    public int getLeeftijd() {
        return leeftijd;
    }
    public void print(){
        System.out.println(toString());
}

}
----------------------------------------------------------------------------------------------------
public class Bediende extends Persoon {
    private String afdeling;
    private double salaris;

    public Bediende(String afdeling, double salaris, String naam, String voornaam, int postcode, int leeftijd) {
        super(naam, voornaam, postcode, leeftijd);
        this.afdeling = afdeling;
        this.salaris = salaris;
   
 
    }
    public String getAfdeling() {
        return afdeling;
    }

    public double getSalaris() {
        return salaris;
       
    }

    @Override
    public String toString() {
        return "Bediende: " + super.getNaam()+ " " + super.getVoornaam() + " ,afdeling: " + afdeling + ", salaris: " + salaris +".";
    }
   

    public void SalarisVerhoging(double bedrag){
    salaris +=bedrag;
    }
    public void print(){
        System.out.println(toString());
    }
}
-------------------------------------------------------------------------------------------------------

public class TestBediende {

   
    public static void main(String[] args) {
       
        Bediende b = new Bediende("informatica", 4000, "lesire", "Eric", 0, 0);
        b.print();
       
    }
   
----------------------------------------------------------------------------------------
Alles werkt ok behalve die twee attributen waar ik het getal 0 heb ingevuld. Ik heb van alles geprobeerd zonder succes. Is er een manier waarmee ik b.print(); kan uitvoeren zonder die 0(en) te hoeven in te voegen?
Alvast bedankt.

Groeten




Offline Stegisoft

  • Ambassadeur
  • *****
  • Berichten: 2.342
  • Geslacht: Man
Re: java oefening
« Reactie #1 Gepost op: 06 maart 2019, 00:18:03 »
Dag roche55nl,

Zelf kan ik dat niet controleren maar ik zie dat je op einde } te weinig hebt om af te sluiten.

Groetjes

Stegisoft
Linux Mint 19.3 64 bits sinds 4/2019
Intel Core i7 5820K @ 3.30GHz
16,0GB Dual-Kanaal Onbekend @ 1197MHz
EVGA INTERNATIONAL CO.LTD 131-HE-E095
NVIDIA GeForce GTX 960
238GB NVMe Samsung SSD 950 (M2 SSD)
ASUS BC-12D2HT (Blu-ray - DVD-RW)
ASUS Essence STX II Audio Device
Waterkoeling Corsair Hydro Series H100i V2

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: java oefening
« Reactie #2 Gepost op: 06 maart 2019, 14:58:26 »
Hi, welkom op het forum :)
Hopelijk kan je hiermee verder, mijn java kennis in niet zo groot, ik gebruik Java alleen voor Acrobat scripts.
Bedoel je dat wanneer je een exemplaar van Bediende afdrukt, het de eigenschappen postcode en leeftijd niet afdrukt?
Pas dan de toString() methode aan om die eigenschappen op te nemen?
Als uw toString() methode moet doen wat jij wilt, dan zou u een andere constructor moeten gebruiken die niet de laatste twee parameters van de huidige constructor gebruikt.
Het dichtst bij de optionele parameters die Java biedt, is het toestaan dat de laatste parameter variadisch is.
Een variadische parameter moet echter een lijst van gerelateerde waarden vertegenwoordigen, niet twee afzonderlijke en niet-gerelateerde waarden zoals postcode en leeftijd.
Je kan meer dan één constructeur voor een classe hebben zolang elk van hun argumentatie lijsten verschillen van de andere in types of aantal parameters?

Enkele  dingen die u kunt verbeteren in uw code:
Maak de classes definitief, tenzij je een goede reden hebt om ze uit te breiden.
Maak velden definitief, tenzij je een goede reden hebt om hun waarden opnieuw toe te wijzen.
Gebruik String.format() om eenvoudig strings te bouwen die variabele waarden bevatten.
Je hoeft niet expliciet naarString() aan te roepen wanneer je println() aanroept. Dus in uw print() methode kunt u gewoon System.out.println(this) aanroepen.
Overschrijf methodes niet wanneer de implementatie hetzelfde zal zijn. Bediende.print() doet hetzelfde als Persoon.print(), dus u kunt gewoon de hele methode uit Bediende verwijderen.
Gebruik niet double voor geld. Floating point waarden zijn onnauwkeurig. Gebruik in plaats daarvan een integraal type of BigDecimaal.
Gebruik int niet omdat de waarde eruit ziet als een getal, zoals postcode. Als je niet van plan bent om er rekenkundig iets mee te doen, gebruik dan String (of bij voorkeur een sterker aangepast datatype).
Start methode namen met een kleine letter. De naam moet een werkwoord zijn, geen zelfstandig naamwoord. Bijvoorbeeld SalarisVerhoging -> verhoogSalaris.
Verwijder onnodige lege regels.

Suc6 want meer weet ik ook niet.

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: java oefening
« Reactie #3 Gepost op: 11 maart 2019, 06:32:11 »
Bediende b = new Bediende("informatica", 4000, "lesire", "Eric", 0, 0);een 0 toekennen aan een double zou ook wel eens een fout kunnen opleveren?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

 


www.combell.com