ik loop vast met leren van JAVA

Status
Niet open voor verdere reacties.

arecno

Gebruiker
Lid geworden
3 mei 2011
Berichten
115
Ik ben begonnen met het leren d.m.v. het boek head first java de pdf versie (ik weet niet of dat verschil uitmaakt maar ik heb een stukje getypt van wat ik nog niet snap.

ik loop al vast bij iets waarvan ik denk dat het basis is :P
de nieuwe klassen maken enze lukt een beetje maar wat ik nog nie helemaal snap is (ik gebruik een voorbeeld uit head first java)
dog d = new dog ()
wat ik denk dat het betekend is je maakt een variable "d" van het type dog (wat dat ook mag betekenen dat snap ik dus ook niet) en je stopt er new dog () in wat ik dus al helemaal niet snap.
maarja ik typ het maar gewoon want daarna kon je d.bark() of zo doen. maar ik typ dat stukje dus hersenloos en zou graag precies wille weten wat het betekend want dan snap ik het vast beter.

en nog iets ik ben ook verder gegaan daarna in head first java en het hele array gebeuren snap ik totaal nie (ik weet wat het is d.m.v. turbo pascal) maar de syntax snap ik nie en laat staan de ArrayList want daar snap ik helemaal geen bal van...
en wat dan helemaal buiten mijn verstand gaat is een arrray maken van objecten...

zou iemand zo aardig kunnen zijn om dit in het nederlands duidelijk te kunnen uitlegge?

alvast bedankt
en de groeten van sven
 
Beste Sven

Ik zou als ik u was niet doorgaan met het boek tot je dit onderdeel goed snapt (het dog gebeuren). Ik zal het proberen uit te leggen op een makkelijke manier..

Stel je maakt een programma dat honden bijhoudt. Je hebt 30 verschillende honden, je moet dus objecten maken van AL die honden. Wat je dan doet is een klasse maken. Dan stel je u de vraag, wat doet een hond allemaal? Zoals in uw geval een hond blaft, de ene hond is groter dan de andere, de andere hond noemt bv Jef en de ene noemt Jos.

Daarna kan je met getters and setters de naam, grootte, instellen van uw hond. Je kan ook vragen om in uw geval de hond te doen laten blaffen.. Hieronder een voorbeeld van een klasse Hond.

Code:
public class Hond {
    private String naam, ras;

    public Hond(String ras) {
        this.ras = ras;
    }

    public String getNaam() {
        return naam;
    }

    public void setNaam(String naam) {
        this.naam = naam;
    }

    public String getRas() {
        return ras;
    }

    public void setRas(String ras) {
        this.ras = ras;
    }
}

Nu dat je die klasse gemaakt hebt kan je objecten gaan maken van deze klasse als volgt..

Code:
Hond hond1 = new Hond("labrador");
Hond hond2 = new Hond("malthezer");

Zoals je kan zien heb ik ook gebruik gemaakt van een constructor, in mijn constructor vraag ik het ras van de hond op die je gaat aanmaken. Je bent dus verplicht om bij het aanmaken van een nieuwe hond een ras in te vullen. Je bent niet verplicht om een constructor te gebruiken. Je kan dit ook leeg laten. BV. De naam van de hond heb ik niet meegegeven in de constructor deze kun je dan via een SETTER instellen als volgt.

hond1.setNaam("joske");
hond2.setNaam("jefke");

Later in uw programma kan je deze namen en rassen ook gaan OPVRAGEN dit doe je met de GETTER methodes..

Code:
hond1.getNaam();
hond2.getNaam();

of het ras

Code:
hond1.getRas();
hond2.getRas();

Nu ga ik het volgende proberen uit te leggen (arraylist van objecten).

Stel u voor, je kan redelijk goed programmeren en je gaat beginnen met databanken. Daar zitten al uw honden in en je moet deze gaan opvragen uit uw databank. Dan moet je deze objecten in een ARRAYLIST steken. Een arraylist is eigelijk niets meer dan een 'kast met schuiven'. Stel we steken onze 2 honden in een ArrayList..

Code:
ArrayList<Hond> hondenLijst = new ArrayList<Hond>();

hondenLijst.add(hond1);
hondenLijst.add(hond2);

Nu kan je met behulp van een for lus uw honden gaan ophalen.. Ik ga het proberen zo simpel mogelijk uit te leggen.

Code:
for(Hond hond : hondenLijst) {
   hond.bark();
}

Eigelijk moet je het gewoon lezen zoals het er staat 'voor elke hond in hondenlijst, laat de hond blaffen'. Dit process blijft zicht herhalen tot alle honden die in de lijst zitten aan het woord geweest zijn zeg maar..

Zo, dit is echt de basis! Lees nog eens het begin ;-). Ga niet verder met het boek tot je dit goed door hebt!

Mvg Dieter
 
Ten eerste hartelijk bedankt voor de reactie met de uitleg, in het nederlands is het toch prettiger lezen terwijl mijn engels toch niet zo slecht is.
het dog d = new dog (); gebeuren heb ik nu al onder de knie :D de GETTERS en SETTERS snap ik ook maar nog een vraagje met "this.ras = ras" gebruik je die this om aan tegeven dat het woord ras wat daar achterkomt bij de klasse Hond hoort? dat was nog even onduidelijk ;)

En nog een vraagje over de ArrayList, om "honden" in een ArrayList te zetten moet ik daarvoor eerst objecten maken en dan die objecten via ArrayList.add (HoeMeHondOokMagHeten) erin zetten?

de groetjes van sven
 
this.ras wijst in een klasse naar de private variable in de klasse zelf.

in volgende code kan je zien naar waar die this verwijst ;-).


Code:
public class Hond {
    private String [COLOR="#ff00ff"]naam[/COLOR], ras;

    public Hond(String ras) {
        this.ras = ras;
    }

    public String setNaam(String [COLOR="#006400"]naam[/COLOR]) {
        [COLOR="#ff00ff"]this.naam[/COLOR] = [COLOR="#006400"]naam[/COLOR];
    }
}

en inderdaad, altijd eerst een object aanmaken voor je het in de arraylist steekt!
 
bedankt voor de hulp en dan heb ik volgens mij nog maar een vraagje over ;)
ik had ook in het boek gezien dat ze een array van objecten maakte volgens mij deden ze dat ongeveer zoiets
Dog [] d;
en dan
d[1] = new dog();
zou dat kunnen? of heb ik dat fout gesnapt?
 
Ja dat kan zeker! Dat is een Array, bij een array moet je eigelijk vooraf weten hoeveel ingangen je nodig zal hebben.

Beter zou zijn

Dog[] d = new Dog[20];

dan kan je zeggen:
d[0] = new Dog();
d[1] = new Dog();

wel opgelet, een Array (een ArrayList ook trouwens) begint te tellen vanaf 0, dus bij een array van grootte 20 is de laatste ingang 19!

Bij een arrayList moet je op voorhand niet weten hoe groot je array gaat zijn.. Je kan hier zoveel objecten insteken als je zelf wilt..!
 
Waarom moet er bij Dog[] d nog new Dog[20] achter?
is dat omdat je array dan 20 lang word?
en daarna doe je nog d[0] = new Dog() is dat dan niet dubbel op
want bij Dog[] d = new Dog[20]
had je toch al 20 objecten gemaakt?
 
hartstikke bedankt voor de hulp en ik zal die pagina eens goed doorlezen in de hoop dat ik het dan helemaal snap ;)

[edit] ik heb het gelezen en snap de array het einde van die pagina gaat nog iets boven me pet met kopieren an array's en volgens mij dubble array's maar dat komt vanzelf vast nog wel [edit]
 
Laatst bewerkt:
Idd, beginnen met de basis.. Het is wel moeilijk om een programmeertaal helemaal op uw eigen te leren ze! Het beste is gewoon om bij elke vraag dieje hebt die ook effectief aan iemand stellen!

Ben je java aan het leren als hobby? Of wil je er later mee aan de slag als programmeur? Welke studierichting volg je nu?

Nog veel succes, moesten er nog problemen zijn. Aarzel niet om ze te stellen! Ik zal proberen op elke vraag een degelijk antwoord te geven!
 
ik leer het nu als hobby ;)
ik zit nu nog op de HAVO maar heb over een maandje ofzo me diploma maar
ik wil graag werktuigbouwkunde gaan studeren of industrieelautomatisering
maar dat zal weinig tot niets te maken hebben met java.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan