Pagina 1 van 2 12 LaatsteLaatste
Weergegeven resultaten: 1 t/m 10 van 13
  1. #1
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts

    JAVA - Beginnersvraagje .

    Hello !

    Dus , WoYA volgt nu Toegepaste Informatica in Leuven !
    & Ik ben hier dus begonnen met Java . De eerste weken hebben we gewerkt met BlueJ , en omdat we binnenkort een test hebben , ben ik alles eens aan het overlopen .
    Mr nu kom ik op een probleempje , en ik weet niet wat doen :( .

    Code:
    /**
     * De klasse Euro.
     * 
     * @ WoYA
     * @ V1.0
     */
    
    public class Euro {
    
        int totEC;
        
    // Constructor zonder parameters. Zet het aantal Eurocent automatisch op 0.
    public Euro () {
        this.setEuroCent (0);
        }
    
    // Constructor met 2 parameters.    
    public Euro ( int euro , int eurocent ) {
        if ( euro >=0 && eurocent >=0 ) {
            this.setEuroCent ( eurocent + euro * 100 );
            }
        }
        
    // Geeft het totale aantal Euro's terug.
    public int getEuro () {
        return ( this.totEC / 100 );
        }
    
    // Geeft de overige Eurocenten terug.
    public int getEC () {
        return ( this.totEC % 100 );
        }
    
    // Geeft het totale aantal Eurocenten terug.
    public int getTotEC () {
        return ( this.totEC );
        }
    
    // Zet het totale aantal Eurocenten op het ingegeven getal.
    private void setEuroCent ( int ec ) {
        if ( ec >= 0 ) {
            this.totEC = ec;
            }
        }
    
    // Controleert als een bedrag minder is dan een ander.
    public boolean isMinder ( Euro bedrag ) {
        boolean ok = false;
            if ( bedrag != null && this.getTotEC () < bedrag.getTotEC () ) {
                ok = true;
                }
                
                return ok;
          }
          
    public void addBedrag ( Euro bedrag ) {
        if ( bedrag != null ) {
            this.setEuroCent ( this.getTotEC () + bedrag.getTotEC () ) ;
           }
        }
    
    public void SubstractBedrag ( Euro bedrag ) {
        if ( bedrag != null && this.getTotEC () > bedrag.getTotEC () ) {
                this.setEuroCent ( this.getTotEC () - bedrag.getTotEC () );
                }
        }
    
    public String toString () {
        return ( this.getEuro () + " Euro en " + this.getEC () + " EC" );
        }
    }
    Bijna op het einde zie je de methode's substractBedrag en addBedrag.

    Als voorbeeld ga ik nu addBedrag toepassen op OBJECT 1 (van de klasse euro..) , op het bedrag van OBJECT 2 toe te voegen..
    Als in OBJECT 1 , 5 euro zit , en in OBJECT 2 ook , heb ik na het toepassen van de methode 10 euro in OBJECT 1 zitten .

    Nu moet ik dit echter veranderen dat die 10 euro , in OBJECT 3 komt !
    Dat in OBJECT 1 dus nog 5 euro zit , in OBJECT 2 ook , maar in OBJECT 3 het totale ..

    Hopelijk ben ik een beetje duidelijk :P . Iemand die het mij kan vertellen ? Want ik weet het even niet .

    Dank je !
    https://twitter.com/Fck___

  2. #2
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Raar dat ge al zo vroeg begint met constructors en klasses.

    Bij C++ (en hier waarschijnlijk ook) kan je gebruik maken van Operator overloading. Maar dat zal je nog niet gezien hebben.

    Dat zorgt ervoor dat je gewoon dit kan doen:

    Euro object1,object2,object3;
    object3 = object1 + object2;

    Bijvoorbeeld. Dus dan maak je een functie voor de "+" en "=" operator.

    *******

    Maar je kan ook heel simpel zoiets doen:
    Euro object3;
    object3.addBedrag(object1); // object3 heeft nu bedrag 0 + bedrag object1
    object3.addBedrag(object2); // object3 heeft nu bedrag object1 + bedrag object2

    met de code die je nu hebt.

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 29 October 2009 om 15:39
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  3. De volgende gebruiker bedankt ultddave voor deze nuttige post:

    Fck_ (29 October 2009)

  4. #3
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Wij zijn begonnen met constructors en klasses .. :P .

    Wij hebben iets met overloaden gezien , maar dat had te maken met de constructors of methodes.

    Als je bijvoorbeeld hebt:
    Code:
    public void setTotaal ( int euro , int centen) 
       BlaatBlaatBlaat het andere gedoe.
    EN

    Code:
    public void setTotaal ( int euro )
        BlaatBlaatBlaat opnieuw het andere gedoe.
    Je hebt nu twee methode's met dezelfde naam , maar het programma gaat zien aan de hand van welke parameters je meegeeft, welke methode je nu juist bedoeld .. Dat noemen ze bij ons Overloaden . Jij hebt het mss over een hele andere overloading :P .
    Of ik kan het helmaal mis hebben :P .. Mr dacht het wel !

    Ik ga direct proberen wat je gezegd hebt ultdave , Thx !
    https://twitter.com/Fck___

  5. De volgende gebruiker bedankt Fck_ voor deze nuttige post:

    ultddave (29 October 2009)

  6. #4
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    yep klopt uw uitleg is correct. Dat is functie overloading. Functies met dezelfde naam, maar met andere parameters . Zoals bijvoorbeeld uw constructors.

    Ik heb gekeken op het internet en blijkbaar heeft Java geen operator overloading (standaard). Al kunt ge door middel van een andere preprocessor dat wel gebruiken. Ma opzich zou ik daar dan niet mee beginnen.

    http://en.wikipedia.org/wiki/Operator_overloading

    Ter info:
    Operator overloading werkt op dezelfde manier als ge hebt uitgelegd aangezien de operatoren zoals + / - * = != == <= etc etc ook gewoon functies zijn met parameters. En door die functies aan te maken in uw klasse kunt ge dus uw eigen operator herdefiniëren voor uw eigen objecten.

    Ma dat is dus enkel in standaard in C++ beschikbaar normaal gezien. :(


    Ik heb java geleerd in men eerste jaar. Maar dat ging van "variabelen aanmaken" (yay ) tot pointers. Constructors en klassen hebben we niet behandeld. Dat doen we nu in C++.

    suc6!

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  7. De volgende gebruiker bedankt ultddave voor deze nuttige post:

    Fck_ (29 October 2009)

  8. #5
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Thx !

    Ik ben mijn code aan het aanpassen nu hoe 'wij het zouden moeten doen' in de klas . Zal hem meteen posten !
    Het schijnt (volgens de leerkrachten.. ) heeft onze school (Khleuven) ook een bepaalde manier van programmeren. Die beter zou zijn fzo..

    Zo gebruiken wij in constructoren de setters, terwijl sommige scholen dat niet aanleren zo enzo..
    https://twitter.com/Fck___

  9. #6
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Zie ik nu nergens een EDIT button of kijk ik gewoon zo slecht ???

    Anyway , mijn code !

    Code:
    /**
     * De klasse Euro.
     * 
     * @ WoYA
     * @ V1.0
     */
    
    public class Euro {
    
        int totEC;
        
    // Constructor zonder parameters. Zet het aantal Eurocent automatisch op 0.
    public Euro () {
        this.setEuroCent (0);
        }
    
    // Constructor met 2 parameters.    
    public Euro ( int euro , int eurocent ) {
        if ( euro >=0 && eurocent >=0 ) {
            this.setEuroCent ( eurocent + euro * 100 );
            }
        }
        
    // Geeft het totale aantal Euro's terug.
    public int getEuro () {
        return ( this.totEC / 100 );
        }
    
    // Geeft de overige Eurocenten terug.
    public int getEC () {
        return ( this.totEC % 100 );
        }
    
    // Geeft het totale aantal Eurocenten terug.
    public int getTotEC () {
        return ( this.totEC );
        }
    
    // Zet het totale aantal Eurocenten op het ingegeven getal.
    private void setEuroCent ( int ec ) {
        if ( ec >= 0 ) {
            this.totEC = ec;
            }
        }
    
    // Controleert als een bedrag minder is dan een ander.
    public boolean isMinder ( Euro bedrag ) {
        boolean ok = false;
            if ( bedrag != null && this.getTotEC () < bedrag.getTotEC () ) {
                ok = true;
                }
                
                return ok;
          }
    
          /*
    public void addBedrag ( Euro bedrag ) {
        if ( bedrag != null ) {
            this.setEuroCent ( this.getTotEC () + bedrag.getTotEC () ) ;
           }
        }
    
    public void SubstractBedrag ( Euro bedrag ) {
        if ( bedrag != null && this.getTotEC () > bedrag.getTotEC () ) {
                this.setEuroCent ( this.getTotEC () - bedrag.getTotEC () );
                }
        }
        */
       
    // Nieuwe addBedrag.
    public Euro addBedrag ( Euro bedrag ) {
        Euro totaal = null;
            if ( bedrag != null ) {
                
                totaal = new Euro ( 0, this.getTotEC () + bedrag.getTotEC () );
               }
            return totaal;
        }
    
    // Nieuwe SubstractBedrag    
    public Euro substractBedrag ( Euro bedrag ) {
        Euro totaal = null;
            if ( bedrag != null && this.getTotEC () >= bedrag.getTotEC () ) {
                
                totaal = new Euro ( 0 , this.getTotEC () - bedrag.getTotEC () );
                }
                return totaal;
            }
    
    public String toString () {
        return ( this.getEuro () + " Euro en " + this.getEC () + " EC" );
        }
    }
    Ik had weer even wat problemen , maar een klasgenoot zei dat ik een 0 vergeten was .. in deze lijn :

    Code:
    totaal = new Euro ( 0 , this.getTotEC () - bedrag.getTotEC () );
    Ik weet precies niet waarom die 0 daar moet staan :/ . Iemand ?
    Laatst gewijzigd door Fck_; 29 October 2009 om 20:21
    https://twitter.com/Fck___

  10. #7
    Erelid   carl's schermafbeelding
    Geregistreerd
    20 June 2006
    Locatie
    Halle/Gent
    Berichten
    2.409
    Bedankjes
    1.846
    Bedankt
    1.827 keer in 1.102 posts
    En als je nu eens door method overloading te gebruiken een methode toevoegt om je bedrag toe te voegen, maar met een extra parameter die je object 3 kan bevatten ?
    vb:
    public Euro addBedrag ( Euro bedrag, Euro object3 ) {
    //bewerkingen
    object3.addBedrag(this); // op voorwaarde dat object3 beginwaarde 0 heeft
    }


    ?? je hebt het al:

    public Euro addBedrag ( Euro bedrag ) {
    Euro totaal = null;
    if ( bedrag != null ) {

    totaal = new Euro ( 0, this.getTotEC () + bedrag.getTotEC () );
    }
    return totaal;
    }


    totaal is een derde object dat teruggegeven wordt bij het aanroepen van die methode.


    Om op je vraag van die nul terug te komen, je hebt maar 2 constructors gedefinieerd: eentje zonder parameters en eentje met 2 parameters (euro, eurocent). Waarom jullie met ints werken en niet met een double gaat mijn verstand te buiten maar kom
    Laatst gewijzigd door carl; 29 October 2009 om 22:14

  11. De volgende 2 gebruikers bedanken carl voor deze nuttige post:

    Fck_ (30 October 2009), ultddave (30 October 2009)

  12. #8
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Ow juist ja ! Die 0 is eigenlijk heel duidelijk , best dom van mij !

    Wij werken met ints omdat wij daar simpel 'genoegt' aan hebben.. niet echt nood aan doubles.
    Dat zegt de leerkracht toch , en die moeten we volgen !

    Bedankt !
    https://twitter.com/Fck___

  13. #9
    Erelid   carl's schermafbeelding
    Geregistreerd
    20 June 2006
    Locatie
    Halle/Gent
    Berichten
    2.409
    Bedankjes
    1.846
    Bedankt
    1.827 keer in 1.102 posts
    Ik kan het verkeerd zien, maar één double hier gebruiken voor het totaal bedrag lijkt me minder kans op fouten en minder werk dan 2 ints met appart het aantal cent en euro Maar als de leerkracht het jullie zo heeft opgedragen volg je dat best.

  14. De volgende 2 gebruikers bedanken carl voor deze nuttige post:

    Fck_ (30 October 2009), ultddave (30 October 2009)

  15. #10
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Hangt er vanaf. Een double heeft afrondingsfouten bij bepaalde getallen. Terwijl als ge dus 2 integers bijhoudt is het meer code en misschien nogal omslachtig, maar dan zijt ge zeker dat alles klopt.

    Maar in dit geval zijn kleinere datatypes zoals single en decimal ook goed. Want ge moet maar 2 cijfers na de komma gaan.
    (Als java die datatypes heeft alleszins)

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  16. De volgende 2 gebruikers bedanken ultddave voor deze nuttige post:

    carl (30 October 2009), Fck_ (30 October 2009)

Discussie informatie

Users Browsing this Thread

Momenteel bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Soortgelijke discussies

  1. sun java JRE 6.0.70.0
    Door dannyma in forum Internet
    Reacties: 12
    Laatste bericht: 11 September 2008, 23:32
  2. Java help
    Door Francisca in forum Overige software
    Reacties: 10
    Laatste bericht: 3 December 2007, 19:29
  3. Java
    Door Rosty in forum Overige software
    Reacties: 4
    Laatste bericht: 24 April 2006, 20:56
  4. Java
    Door TusH in forum Overige software
    Reacties: 3
    Laatste bericht: 1 November 2005, 20:37
  5. Java
    Door dirk2 in forum Overige software
    Reacties: 2
    Laatste bericht: 12 August 2005, 20:58

Favorieten/bladwijzers

Favorieten/bladwijzers

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •