CrazyHorse
wzl-lid
Sinds 1/1/2005
T: 14
R: 636
|
1/9/2006 -
10:50u
| Quote
|
wanneer er een methode staat:
public class int getInteger()
weet iedereen da da gewoon nen int teruggeeft... ma ik heb hier ergens in men cursus staan:
public static int getInteger()
nu is mijn vraag... wa is het verschil tussen die twee...?
|
Poel
Respect!
Sinds 13/1/2003
T:10 -
R:122
|
1/9/2006 -
11:10u
| Quote
|
wanneer er een methode staat:
public class int getInteger() Ik vermoed dat die "class" er tussenuit moet.
Een static method is zoals een static variable gedefinieerd voor heel de klasse als 1 methode. Zoals er dus één static variable bestaat voor alle instanties van die klasse, bestaat er ook één methode. Met als gevolg dat de static method enkel static variables kan gebruiken.
Eén voordeel van het gebruik van static methods is dat er geen object parameter moet doorgegeven worden (door de compiler) bij het oproepen van de methode, wat resulteert in efficiëntere code...
Ook het oproepen van de methode verschilt:
gewone(instance) method:
MyClass myVar = new MyClass(); myVar.method();
static (class) method
MyClass.staticMethod();
of
MyVar = MyClass.staticMethod(); [het verschil zit em in het feit of de methode een waarde teruggeeft of niet maar dat spreekt voor zich...]
Laatst aangepast door
Poel
op 1/09/2006 11:24:31u
(1x aangepast)
|
CrazyHorse
wzl-lid
Sinds 1/1/2005
T:14 -
R:636
|
1/9/2006 -
11:27u
| Quote
|
heb ook uitleg gevraagd aan vriend... en die zegt juist het omgekeerde
die zegt da static methodes alleen maar werken met de waarden die zijn meegegeven als parameters?
ikzelf heb er geen gedacht van wa het nu is?
|
Poel
Respect!
Sinds 13/1/2003
T:10 -
R:122
|
1/9/2006 -
11:49u
| Quote
|
CrazyHorse schreef: heb ook uitleg gevraagd aan vriend... en die zegt juist het omgekeerde
die zegt da static methodes alleen maar werken met de waarden die zijn meegegeven als parameters?
ikzelf heb er geen gedacht van wa het nu is? 
Dus je zou al geen static method zonder parameters kunnen definiëren. Static methods werken voor de klasse en niet voor het geïnstantieerde object. Ze kunnen operaties uitvoeren op static variables en meegeleverde parameters. Probeer maar een keer in Eclipse of zo. Je kan het ook nalezen op:
Sun MircoSystems -- Class methods Google java Tech
Laatst aangepast door
Poel
op 1/09/2006 11:50:50u
(2x aangepast)
|
Ben Dover
wzl-lid
Sinds 24/1/2004
T:4 -
R:208
|
1/9/2006 -
11:50u
| Quote
|
Stel ge hebt een class Boek. Deze class heeft 2 variabelen aantalBoeken en boekID. Beiden zijn int, maar dat doet er niet toe. aantalBoeken is static en boekID niet. De class heeft ook 2 methods: getAantal() en getBoekID(). Ook hier is getAantal() static. Het verschil tussen beiden is niet zo moeilijk. Stel dat dit uw constructor is:
public Boek(int ID){ this.boekID = ID; //this mag natuurlijk weg aantalBoeken ++; }
Telkens als ge een nieuw boek object maakt, krijgt dat object een eigen boekID. Maar omdat aantalBoeken een static variabele is, is er maar aantalBoeken voor alle boek objecten die ge maakt. Daarom zal getAantal() ook het totaal aantal boeken terug geven (en niet 1). Let wel op, getAantal() wordt niet opgeroepen op een object, maar op de class dus:
Boek lotr1 = new Boek(00500); lotr1.getID(); //geeft 00500 terug Boek.getAantal(); //geeft 1 terug
Boek lotr2 = new Boek(00501); lotr2.getID();// geeft 00501 terug Boek.getAantal(); // geeft nu 2 terug
|
CrazyHorse
wzl-lid
Sinds 1/1/2005
T:14 -
R:636
|
1/9/2006 -
13:09u
| Quote
|
ik denk dak het snap... merci!
|