Page 1 of 3 123 Last
  1. #1
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)

    [Java] Gebruik van this

    Is dit eerder een voorkeur om dit te gebruiken? Zoals bijvoorbeeld dit voorbeeld

    Code:
    public class Naam {
    	private String $voornaam;
    	private String $achternaam;
    
    	public Naam(String voornaam, String achternaam) {
    		$voornaam = voornaam;
    		$achternaam = achternaam;
    	}
    }
    Nu kan je echter ook zeggen

    Code:
    public class Naam {
    	private String $voornaam;
    	private String $achternaam;
    
    	public Naam(String voornaam, String achternaam) {
    		this.$voornaam = voornaam;
    		this.$achternaam = achternaam;
    	}
    }
    Graag wat verduidelijking.
    no votes  

  2. #2
    Kemblin's Avatar
    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.

    Variable 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 "_".
    Het gebruik van this is gewoon handig als je het huidige object nodig hebt. bvb

    Code:
    public class Naam {
    	private String voornaam;
    	private String achternaam;
    
    	public Naam(String voornaam, String achternaam) {
    		this.voornaam = voornaam;
    		this.achternaam = achternaam;
    	}
    }
    want dit

    Code:
    public class Naam {
    	private String voornaam;
    	private String achternaam;
    
    	public Naam(String voornaam, String achternaam) {
    		voornaam = voornaam;
    		achternaam = achternaam;
    	}
    }
    gaat geen effect hebben.

    Het wordt ook handig als je een functie oproept die dit object nodig heeft bvb

    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.
    	}
    }
    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...
    Last edited by Kemblin; 29-01-2010 at 00:51.
    there you go
    no votes  

  3. #3
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

  4. #4
    forloRn_'s Avatar
    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  

  5. #5
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

  6. #6
    forloRn_'s Avatar
    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  

  7. #7
    Daedie's Avatar
    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: Daedie
    no votes  

  8. #8
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

  9. #9
    Gurdt's Avatar
    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  

  10. #10
    Jerre Muesli's Avatar
    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  

  11. #11
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

  12. #12
    Gurdt's Avatar
    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  

  13. #13
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

  14. #14
    Jerre Muesli's Avatar
    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  

  15. #15
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in