OOP probleem.. ik heb het nog niet duidelijk

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag,,

Ik heb al heel wat research gedaan, en hier gevraagd daar gevraagd maar ik heb het nog niet duidelijk in mijn hoofd.
Vandaar dat ik even wat post..

Het onderstaande vind ik wel een duidelijk voorbeeld, maar toch .. WAT is nou WAT??

Je hebt klasses, objecten, methoden.
Als ik er een beeld bij moet maken gaat een programma als volgt: ( het staat in orde -> belangrijkste / grootste boven )

Klasses
|_
Objecten
|_
Methoden
Klopt dat??

In een klasse staat "alles zeg maar".
Een methode bevat een rekenregel / een functie ( denk ik )
Maar een Object is geen variabele volgensmij.

Nou goed.. ik heb het vaag omschreven vind ik zelf,
maar miss dat jullie mij zouden kunnen helpen.

Alvast bedankt!
Groet Gerard


/////////////////////////////////////////////////////////
Objecten:
Alles is een object: de computer, de klok aan de muur, de kat op de vensterbank en jij zelf. Kenmerken van een object zijn dat ze een toestand (state) en gedrag (behavior) hebben. Bij het programmeren schrijven we geen objecten; maar klassen. Klassen zijn definities van objecten. Ze zijn als het ware de taartvorm om een taart te maken.

Methoden en velden:
Binnen klasses zijn methoden en klassen aan te wijzen. Methoden zijn functies binnen een klasse, ze werken ook op dezelfde manier als normale functies. Velden zijn variabelen binnen een klasse.
/////////////////////////////////////////////////////////

Acties:
  • 0 Henk 'm!

Verwijderd

Een object is een instantiering van een klasse.

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Zie een lamp als een object, dat is gemaakt uit de klasse type xyz (voorbeeld). Nu is een propertie (dus een variable) mischien of hij aan staat, of uit. Dan kan je een methode (functie) hebben om die propertie aan of uit te zetten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nou het is mij nog niet duidelijk. ... helaas

Maar ik heb een klasse.. die kun je "aanroepen"

Maar in een klasse heb je objecten EN methodes.
En wat is daar nou het verschil tussen..

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op vrijdag 28 maart 2008 @ 14:45:
Nou het is mij nog niet duidelijk. ... helaas

Maar ik heb een klasse.. die kun je "aanroepen"

Maar in een klasse heb je objecten EN methodes.
En wat is daar nou het verschil tussen..
Een klasse roep je niet aan;
een klasse is een beschrijving.

Zie een klasse als een recept, en het object als het daadwerkelijke gerecht.

Een klasse LampKlasse beschrijft hoe lampen er uit zien.
Als je daadwerkelijk een lamp maakt is dat een object.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
okee.. thanks.. dus bij dit vb:
//
Een klasse LampKlasse beschrijft hoe lampen er uit zien.
Als je daadwerkelijk een lamp maakt is dat een object.
//
-----------
klasse lamp - ze geven licht, kaarsvorm, bol enz enz
object - dat moet dan een echte lamp worden. En dat kan ik zien als??
een methode ( ander woord voor functie )- ? die kan??

[ Voor 17% gewijzigd door Verwijderd op 28-03-2008 14:51 ]


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Je gaat naar de IKEA en koopt een stoel. In de doos zit een beschrijving van de stoel, inclusief de tekeningen hoe je de stoel in elkaar moet zetten.

De totale beschrijving is een klasse. Daar staat in dat je een stoel kan maken, hoe deze eruit ziet en wat je ermee kan doen.
Op het moment dat je een instantie maakt van een klasse, krijg je een tastbaar product. Dat is je object, of in het geval van het voorbeeld: de tastbare stoel.

Methodes zijn functies die zijn ingesloten in de klasse. In de beschrijving staat bijvoorbeeld dat je de hoogte van de stoel kan berekenen. Als je een instantie van de stoel hebt gemaakt, kan je de methode aanroepen en dus de hoogte van die stoel berekenen.

Acties:
  • 0 Henk 'm!

  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 20:21
Een klasse: Auto (public class Auto)
Een object: BMW (Auto BMW = new Auto())
Een methode: public int getKilometerStand (een methode voor het returnen van de kilometerstand)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Spike1506 schreef op vrijdag 28 maart 2008 @ 14:51:
Een klasse: Auto (public class Auto)
Een object: BMW (Auto BMW = new Auto())
Een methode: public int getKilometerStand (een methode voor het returnen van de kilometerstand)
Kee, en dan kan die getKilometerStand voor elke auto gebruikt worden?? Dus voor elke methode? BMW, maar ook AUDI, VW enz enz??

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Ik raad je aan om gewoon aan de hand van een Java beginners boek in Java te gaan programmeren, dan wordt je het verschil tussen een class en een object snel genoeg duidelijk.
Verwijderd schreef op vrijdag 28 maart 2008 @ 14:53:
Kee, en dan kan die getKilometerStand voor elke auto gebruikt worden?? Dus voor elke methode? BMW, maar ook AUDI, VW enz enz??
getKilometerStand IS een method. Dat auto-voorbeeld vind ik trouwens geen goeie, want die wordt vaak voor de uitleg van inheritance gebruikt en zo ver ben je nog niet.

[ Voor 54% gewijzigd door Hydra op 28-03-2008 14:55 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 19:32
Verwijderd schreef op vrijdag 28 maart 2008 @ 14:45:
Nou het is mij nog niet duidelijk. ... helaas

Maar ik heb een klasse.. die kun je "aanroepen"

Maar in een klasse heb je objecten EN methodes.
En wat is daar nou het verschil tussen..
Een class is een bestand waarin staat hoe een bepaald object zich gedraagt. Dit object heeft functies (of ook wel methoden geheten) die aangeroepen kunnen worden. Op het moment dat van de classe een instantie wordt gemaakt in het geheugen is het een object.

Dus in het kort

klasse : Omschrijving van een Object
Object : Een instantie van de klasse
Methode: functies in een klasse die aangeroepen kunnen worden als je er iets met de instantie moet gebeuren.

Om methoden nog iets te verduidelijken. Denk aan een auto. De auto kan rijden echter zul je hiervoor eerst op het gaspedaal moeten duwen. Dit is een functie van de auto * dus van het object *.

offtopic:
hoop dat het een beetje klopt zo en duidelijk is. Sluit me verder aan bij hydra.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 12-09 10:03

Creepy

Tactical Espionage Splatterer

(jarig!)
Eeh, als het verschil tussen een object en een methode niet helemaal duidelijk is dan wil ik je aanraden om je boek er weer eens bij te pakken en dat nog eens door te lezen.

Super korte samenvatting:

Een class is een beschrijving van iets. Een class heeft methoden en velden. Een veld is een variabele. In deze variabele kan een "normaal" type staan (integer, boolean etc) of een Class.
code:
1
2
3
4
5
6
7
8
9
10
11
Class Boek {
  private title: integer; // veld
  private pages: array of Page; // ook een veld

  function printBoek(); // methode
  function setTitle(); // ook een method
}

Class Page {
 // blaat
}


Een object is een instantie van een class. Je hebt een instantie nodig om er iets mee te kunnen doen. Deze instantie stop je in een variabele. Deze variabele kan weer een veld van een class zijn ;)
code:
1
2
var harryPotter = new Boek();
harryPotter->setTitle("Harry Potter takes over the World");

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oke.. nou goed.. hartelijk bedankt...

Ik zal er gewoon nog maar een boel over lezen, en ik heb boeken genoeg. Maar makkelijkere voorbeelden zijn er denk ik niet.

Maar goed... thanks

Acties:
  • 0 Henk 'm!

  • DrClaw
  • Registratie: November 2002
  • Laatst online: 21-08 21:39
ik vond die auto-analogie wel duidelijk hoor. sowieso, auto-analogieen heersen.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Om het maar even in Java weer te geven:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Auto //Classdefinitie
{
    private int kilometerStand; //Private variabele om km stand bij te houden

    public void start()            //Method/functie om de auto te starten
    {
        //Broem!
    }

    public int getKilometerStand()  //Method/functie om de kmstand op te vragen
    {
        return kilometerStand;
    }

    public void setKilometerStand(int km) //Method/functie om de kmstand te veranderen
    {
        this.kilometerStand  = km;
    }
}

public class MyProgram
{
    public void maakAutosAan()
    {
        Auto mijnAuto = new Auto(); //Objectinstanties
        Auto jouwAuto = new Auto();

        //Hierboven zijn 2 auto-objecten aangemaakt waar ik nu bewerkingen e.d. op uit kan voeren.     
        //Iedere auto heeft zijn eigen km-stand e.d.
    }
}

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
DrClaw schreef op vrijdag 28 maart 2008 @ 15:02:
ik vond die auto-analogie wel duidelijk hoor. sowieso, auto-analogieen heersen.
Ik vond de merken verkeerd gebruikt. Een merk is typisch een onderdeel van je object. Net zoals de km stand.

Edit: zie dat ik niet de enige met een voorbeeld ben. Mosterd na de maaltijd :)

[ Voor 12% gewijzigd door Hydra op 28-03-2008 15:10 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

Verwijderd

*laat dit soort onzin maar achterwege*

[ Voor 80% gewijzigd door Creepy op 28-03-2008 15:53 ]


Acties:
  • 0 Henk 'm!

  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 20:21
Hydra schreef op vrijdag 28 maart 2008 @ 15:07:
[...]


Ik vond de merken verkeerd gebruikt. Een merk is typisch een onderdeel van je object. Net zoals de km stand.

Edit: zie dat ik niet de enige met een voorbeeld ben. Mosterd na de maaltijd :)
Je hebt inderdaad gelijk over de merken, mijn bedoeling was om hetzelfde duidelijk te maken als wat jij in je voorbeeld doet oftewel laten zien dat je met de klasse auto verschillende objecten (auto's zoals die van jou of mij) kunt maken.

Acties:
  • 0 Henk 'm!

  • siknu
  • Registratie: Februari 2004
  • Laatst online: 30-06 15:56
*iets met slechte replys.....*

[ Voor 91% gewijzigd door Creepy op 28-03-2008 15:53 ]


Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

*iets met slechte replys.....*

[ Voor 89% gewijzigd door Creepy op 28-03-2008 15:53 ]

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Gooh.. ik soms echt het idee dat ik een leek ben.

Hoe krijg ik nou de kilometerstand van mijnauto drvoor??
Thanks echt! voor alle antwoorden.

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:07
Verwijderd schreef op vrijdag 28 maart 2008 @ 16:19:
Gooh.. ik soms echt het idee dat ik een leek ben.

Hoe krijg ik nou de kilometerstand van mijnauto drvoor??
Thanks echt! voor alle antwoorden.
door de member functies van een instantie op te roepen ....

code:
1
2
3
Auto mijnAuto = new Auto();
mijnAuto.setKmStand (900);
Console.WriteLine (mijnAuto.getKmStand());


Alhoewel je hier al heel wat waardevolle replies gekregen hebt, denk ik ben ik er zeker van dat je er toch nog eens goed aandoet om een boek of tutorial op te snorren waarin de basics van OOP uit de doeken gedaan worden.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op vrijdag 28 maart 2008 @ 16:19:
Gooh.. ik soms echt het idee dat ik een leek ben.

Hoe krijg ik nou de kilometerstand van mijnauto drvoor??
Thanks echt! voor alle antwoorden.
De methode getKilometerStand() is onderdeel van de Auto klasse (de blauwdruk). Als je een auto object aanmaakt die is gevormd naar de auto klasse (gebaseerd op de blauwdruk), dan kan je alle functionaliteit van de klasse gebruiken om het object te bewerken.

Auto autoVariabele = new Auto();
double kilometerstand = autoVariable.getKilometerStand();

AutoVariabele is hier (de verwijzing naar) het object.

Dit is denk is wel wat voor jou:
http://www.cs.uu.nl/docs/vakken/imp/diktaat/imp.pdf

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Jooh.. echt bedankt allemaal..

Ik heb het licht gezien denk ik :p
Nee, maar echt. top

Groet Gerard
Pagina: 1