Thread: [Java] Gebruik van this
-
29-01-2010, 00:33 #1
[Java] Gebruik van this
Is dit eerder een voorkeur om dit te gebruiken? Zoals bijvoorbeeld dit voorbeeld
Nu kan je echter ook zeggenCode:public class Naam { private String $voornaam; private String $achternaam; public Naam(String voornaam, String achternaam) { $voornaam = voornaam; $achternaam = achternaam; } }
Graag wat verduidelijking.Code:public class Naam { private String $voornaam; private String $achternaam; public Naam(String voornaam, String achternaam) { this.$voornaam = voornaam; this.$achternaam = achternaam; } }no votes
-
-
29-01-2010, 00:39 #2Member
- Registered
- 14/05/03
- Location
- Schoten
- Posts
- 812
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/7
ik zou u variabelen niet met $ laten beginnen, dat is niet volgens de gangbare conventies.
Het gebruik van this is gewoon handig als je het huidige object nodig hebt. bvbVariable names are case-sensitive. A variable's name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits, beginning with a letter, the dollar sign "$", or the underscore character "_". The convention, however, is to always begin your variable names with a letter, not "$" or "_".
want ditCode:public class Naam { private String voornaam; private String achternaam; public Naam(String voornaam, String achternaam) { this.voornaam = voornaam; this.achternaam = achternaam; } }
gaat geen effect hebben.Code:public class Naam { private String voornaam; private String achternaam; public Naam(String voornaam, String achternaam) { voornaam = voornaam; achternaam = achternaam; } }
Het wordt ook handig als je een functie oproept die dit object nodig heeft bvb
Er zijn dus verschillende toepassing van this. Het klopt wel dat het gebruik van this soms overbodig is en het enkel ter verduidelijking wordt gebruikt...Code:public class Naam { public boolean areEqual(Naam naam) { return naam.equals(this); // je kan ook gewoon equals(naam) gebruiken maar je snapt mijn punt hopelijk. } }Last edited by Kemblin; 29-01-2010 at 00:51.
there you gono votes
-
29-01-2010, 00:48 #3
Ja inderdaad, gebruik ze vooral als mijn membervariabele dezelfde naam hebben als mijn parametervariabele.
Maar is het aangewezen om this altijd te gebruiken of maakt dat niet zoveel uit en is dat eerder je eigen 'stijl'?
Ik had eens ergens tegengekomen dat ze member variable dikwijls met een $ laten beginnen om zo het onderscheid goed te kunnen zien. Dezelfde reden als waarom ze constante met hoofdletters schrijven. En ik moet zeggen, het helpt echt wel om een duidelijk verschil te zien tussen lokale en member variabele.
Iemand die hier meer van kan zeggen of heb ik het gewoon 100% mis...no votes
-
29-01-2010, 09:53 #4Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Ik heb eerlijk gezegd nog nooit een $ in een identifier gezien in Java.
Een goede IDE zal members en lokale variabelen een ander kleurtje geven; dat zou voldoende moeten zijn. Als je echt het onderscheid niet meer kunt maken, zou ik eerder eens aan refactoren denken in plaats van overal van die lelijke dollartekens te zetten.no votes
-
29-01-2010, 11:26 #5
Is eclipse dan een slechte IDE? Want die geeft aan mijn membervariabele geen speciale kleur
.
Refactoring is toch opschonen van code? Dus meer dingen opsplitsen en dergelijke? Het is niet dat ik het echt niet meer zag, het was meer een extra hulpmiddel, net zoals hoofdletters bij constanten. En ik vind die $-tekens niet lelijk, maar dat kan zijn omdat ik ze gewoon ben van PHP.no votes
-
29-01-2010, 11:45 #6Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Eclipse geeft mijn member-variabelen een blauw kleurtje hoor.
En Java != PHP. Je doet wat je wilt natuurlijk, maar als andere Java-programmeurs je code gaan bekijken, is het eerste wat ze zullen vragen: "what the fuck doen die dollartekens daar?"no votes
-
29-01-2010, 11:47 #7Approved 9-lifer
- Registered
- 30/09/02
- Location
- Kasterlee
- Posts
- 6,160
- iTrader
- 11 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/25
renamen van functies en variabelen ten voordele van leesbaarheid valt ook onder refactoring
.
Maar ivm uw dollars. Ge kunt ook iedere variabele met hoofdletter laten beginnen, maar ben zeker dat ge dat ook niet doet. Omdat dat tegen de conventies is. Voor die dollars geldt hetzelfde eigenlijk.
Weet niet precies wat de conventies zijn in java ivm member variabelen, in C++ wordt nogal eens m_ voor de variabele gezet, maar denk niet dat ze dat in java doen.PSN: Daedieno votes
-
29-01-2010, 12:04 #8
Nu je het zegt, heb al een tijdje niet meer geprogrammeerd met examens. Ze zijn inderdaad blauw, dacht even dat hij ze ook aan lokale vars gaf.
@forloRn_: Nee ik haal ze wel weg, ik wil gewoon mijn mening geven waarop jullie dan weer die van jullie kunnen geven. Zo gaat een discussie nu eenmaal
. En mijn moto is "knowledge is power", dus discussies op dit gebied zijn in mijn ogen bevorderend voor in eerste instantie mij en ook voor andere (misschien wel beginnende) programmeurs.
no votes
-
29-01-2010, 12:22 #9Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Enkele proffen bij ons geven membervariabelen altijd aan met "m_" of "$". Het valt vooral op dat ze bij java kiezen voor "$" wat ik zelf heel leesbaar vindt.
Die conventies zijn mss afhankelijk van bedrijf tot bedrijf?
Die proffen wat bij ons "$" gebruiken werken doorgaans op het EDM (Expertisecentrum voor Digitale Media) dus ik denk niet dat het fout is om "$" te gebruiken
Over die "this", het zal er altijd vanaf hangen wat je hoort te doen volgens de bedrijfsconventies/teamregels/...
Het is zeker niet fout en ik vind het wel lekker leesbaar
no votes
-
29-01-2010, 12:34 #10Member
- Registered
- 08/09/02
- Location
- -
- Posts
- 2,044
- iTrader
- 9 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 3/6
Variabelen met $ laten beginnen in Java vind ik wel echt een vreemd idee.
Het heeft geen enkele toegevoegde waarde qua leesbaarheid (integendeel) en het lijkt dan of je PHP verward met Java ofzo.
The convention, however, is to always begin your variable names with a letter, not "$" or "_". Additionally, the dollar sign character, by convention, is never used at all. You may find some situations where auto-generated names will contain the dollar sign, but your variable names should always avoid using it.no votes
-
29-01-2010, 12:47 #11
Ik denk dat ik het ook van u heb Gurdt, wat betreft die '$'-tekens. Had het ergens hier op 9lives in een topic gelezen.
Nu bij ons op school gebruiken ze in c++ voor parameters ook wel eens een _
voorbeeld (rechtstreeks van een oplossing van de prof)
Code:Naam::Naam(string _voornaam, string _achternaam) { voornaam = _voornaam; achternaam = _achternaam }no votes
-
29-01-2010, 13:30 #12Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Natuurlijk daar is niets mis mee, het draait em allemaal om conventies
en PHP met Java verwarren? Omdat je "$" gebruikt??
Dat is toch ook gewoon leesbaar
Da valt op, zo zie je snel de membervariabelen, net als bij "m_" maar dat vind ik persoonlijk lelijk ogen xD
no votes
-
29-01-2010, 14:45 #13
Ja ik zie ook niet in waarom je php met java zou verwarren omdat je er een $ aan toevoegd, zo kan je wel alles gaan vergelijken.
Ben er nog niet goed uit hoe ik het ga doen.no votes
-
29-01-2010, 15:57 #14Member
- Registered
- 08/09/02
- Location
- -
- Posts
- 2,044
- iTrader
- 9 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 3/6
Iedereen doet wat hij wil natuurlijk maar moest ik van een collega java code krijgen vol dollar tekens dan zou mijn eerste reactie een serieuze WTF zijn, gevolgd door een vreemd gevoel van 'hopelijk heeft hij wat skill en mag ik zijn code straks niet helemaal herschrijven'.
Het geeft me zo'n gevoel dat iemand zijn eerste stapjes in Java zet. En waarschijnlijk is het dan ook zo want anders kende hij vast de java conventions.
Maar we gaan weer naar een convention discussie dus ik ga m'n muil houden
sommige vinden ze belangrijk, anderen zien er het nut niet van in
no votes
-
29-01-2010, 18:25 #15
Ja ik ben ook wel iemand die redelijk strict is in zijn conventies, heb ze dan ook al allemaal uit mijn code gehaald. En je moet zeker je mond niet houden x3xk3, het is een discussie voor iets en zo leert iedereen nog wat bij.
no votes
