🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2044

Re: [Java] forum of iets dergelijks?

#2044
From: Gerrit Cornelis
Date: Wed, 27 Oct 2004 15:38
82 lines
4196 bytes
"P" <de_polle_KEEP_SPAM_AWAY@kotnet.org> wrote in message
news:1098887972.901356@seven.kulnet.kuleuven.ac.be...
> Djatha schreef:
> > P wrote:
> >
> >>* Binnen een /static/ methode kan je enkel andere /static/ methoden e.d.
> >>oproepen.  Maar als je een progje wilt executen, dan moet je toch de
> >>/static/ methode /main/ gebruiken?  Hetgeen uiteindelijk toch betekent
> >>dat ALLE methoden die je schrijft /static/ moeten zijn?  Wat klopt er
> >>niet in mijn redenering?
> >
<knip>

> Begrijp ik het goed dat het dus volstaat binnen die statische
> main-methode een object aan te maken waarop ik dan vervolgens
> niet-statische methoden kan toepassen?
>
Je kan geen methodes toepassen op een object. Je kan aan een object vragen
om methodes uit te voeren. Static methodes werken op het klasse niveau, je
hoeft dus geen object te hebben om een static methode op te roepen.  Als je
een object creert (via de static constructor) kan je op dat object niet
statische methodes oproepen. Dus:
static          ->    klasse niveau
niet static    ->    object niveau

je dient je er altijd  van bewust te zijn op welk niveau je werkt. En van
het ene niveau naar het andere ga je over door een object aan te maken en
daar methods op op te roepen (van klasse naar object) of door een klasse
naam te specifieren en daar methods op te roepen (van object naar klasse)


>
> >>* Ik snap het gebruik van /this/ niet helemaal.
> >
<knip>
> >
> >>public class Person
> >>{
> >>     private String name ;
> >>     private int age ;
> >>
> >>     public Person(String naam, int lftd)
> >>     {
> >>         name = naam;
> >>         age = lftd;
> >>     }
> >>
> >>     public Person(String naam)
> >>     {
> >>         this(naam,0); // ****
> >>     }
> >>}
> >>
> >>
<knip>

> Door het systeem van 'overloading' en het gebruik van andere argumenten,
> zou ik toch denken dat de compiler daaraan uit zou moeten kunnen.  Ik
> heb niet helemaal door wat u hier bedoelt met het verschil tussen de
> lokale en de klasse-context.  wanneer ik op de regel met **** de methode
> Person(naam, 0) wil oproepen, gaat hij dan niet binnen de klasse zoeken
> naar waar die methode staat en hoe die werkt?
je hebt 100 % gelijk.

   Indien ik hier
> bijvoorbeeld doThis(naam, 0) zou oproepen ipv Person(naam, 0) , dan
> heeft hij daar toch ook geen probleem mee?  Dan gaat hij toch binnen de
> klasse zoeken naar waar die methode doThis(String naam, int lftd) wordt
> beschreven en die op die manier toepassen?   Waar zit ik fout in mijn
> hele redenering?

constructoren zijn geen gewone static methods. je kan ze niet zomaar
oproepen, je gebruikt de speciale constructie new Person("iets") om je
object aan te maken en niet gewoon Person("iets"). Dat in tegenstelling tot
Person.doThis(naam,0) dat je wel degelijk kan oproepen maar dat nooit een
nieuw object zal aanmaken. Dus constructors zijn niet gelijk aan static
methods. Nu hadden de ontwerpers van Java indertijd vermoedelijk ook kunnen
kiezen voor jouw voorstel: Person(naam, 0) ipv this(naam,0).
maar ze hebben het andere gekozen.

gC
Technical Details
Message-ID: <417fc0e0$0$25847$ba620e4c@news.skynet.be>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newsfeeds.sol.net!skynet.be!skynet.be!newspost001!tjb!not-for-mail
References: <1098879313.545561@seven.kulnet.kuleuven.ac.be> <clo6uj$34n$1@news.tue.nl> <1098887972.901356@seven.kulnet.kuleuven.ac.be>

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,5d8e30860e7dff67
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newsfeeds.sol.net!skynet.be!skynet.be!newspost001!tjb!not-for-mail
Reply-To: "Gerrit Cornelis" <gerrit_*remove*cornelis@belgacom.net>
From: "Gerrit Cornelis" <gerrit_*remove*cornelis@belgacom.net>
Newsgroups: be.comp.programming
References: <1098879313.545561@seven.kulnet.kuleuven.ac.be> <clo6uj$34n$1@news.tue.nl> <1098887972.901356@seven.kulnet.kuleuven.ac.be>
Subject: Re: [Java] forum of iets dergelijks?
Date: Wed, 27 Oct 2004 17:38:02 +0200
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Lines: 87
Message-ID: <417fc0e0$0$25847$ba620e4c@news.skynet.be>
Organization: -= Belgacom Usenet Service =-
NNTP-Posting-Host: 21a06ce6.news.skynet.be
X-Trace: 1098891488 news.skynet.be 25847 194.78.136.107:58411
X-Complaints-To: usenet-abuse@skynet.be