kostenloser Webspace werbefrei: lima-city


Sauberes Programmieren in Java

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.

    Hallo Leute,

    ich programmier nun schon seit längerem Java, und habe dabei gemerkt, dass saubere Programmierung und Struktur das a und o ist. Ich programmiere mit Netbeans.

    Nun meine Frage: An welchen Stellen sollte man this. verwenden? - Macht es einen Laufzeitunterschied, oder gar einen Unterschied im Programm? Bei Netbeans tendiert man ja dazu, die Attribute über this.myattribut anzusprechen, da dann die IDE gleich vorschlägt, was man nehmen kann.

    Bsp:
    class Test {
       private int faktor;
    
       public Test(f_neu, t_neu)
       {
             faktor = f_neu;            // oder this.faktor = f_neu;
       }
       public void verdoppeln()
       {
            faktor = faktor*2; // oder this.faktor = this.faktor * 2
       }
    }


    Viele Grüße,
    Prog

    Beitrag zuletzt geändert: 16.10.2009 17:36:47 von prog
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Für die Laufzeit macht es keinen Unterschied. Es erhöht aber die Lesbarkeit deines Codes. Und bei kleinen Klassen wird dir denke ich auch niemand den Kopf abreißen ;)

    Aber bei größeren Klassen kann es durchaus sinnvoll sein this mit anzugeben bzw. ist teilweise unerlässlich damit der Compiler weiß auf welche Variable du zugreifen willst. Vor allem bei anonymen Klassen wird das wichtig.
  4. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.

    Bisher hab ich eh alles mit den this programmiert, allein schon, weil ich es von PHP her so kenne.

    Sollte man private Methoden ebenfalls über this erreichen?
  5. e********l

    Öhm, wieso erreichen? Es ist halt lesbarer. Spätestens bei anonymen Klassen ist ein this problematisch. Aber solange du dich direkt in der Klasse bewegst kannst und solltest du mMn this davor schreiben. Man findet dann auch selbst die Methode schneller wieder =)
  6. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.

    Naja, mit erreichen meinte ich einfach aufrufen, also this.methode
    Vielen Dank für die schnelle Antwort, ich werds dann weiterhin mit dem this machen.

    Grüße,
    Prog
  7. c****s

    In meinen Augen verringert exzessive Verwendung von this die Lesbarkeit und erhöht sie nicht. Aber für deine privaten Projekte musst du das selbst wissen und jeder entwickelt für sich ja seinen eigenen Codestil (schon allein, wo plenke ich, wo mache ich neue Zeilen, wo mache ich Leerzeilen, etc). Auf Arbeit bekommst du wahrscheinlich eh Coding Guidelines vorgelegt, die für dich verpflichtend sind und vielleicht lässt der Sourceserver es nicht einmal zu, dass du deine Sourcen einstellst, wenn sie nicht den Guidelines entsprechen.

    Ich persönlich verwende this wirklich nur dann, wenn es notwendig ist, was bei mir häufig bei Konstruktoren und Getter-/Setter-Methoden vorkommt. Ungefähr so:

    public class Person
    {
    	private int age;
    	private String name;
    
    	protected Person () {}
    
    	public Person (int age, String name)
    	{
    		this.age = age;
    		this.name = name;
    	}
    
    	public int getAge () { return age; }
    	public void setAge (int age) { this.age = age; }
    }


    Aber wie gesagt, das ist hauptsächlich persönliche Vorliebe.

    evil-devil schrieb:
    Vor allem bei anonymen Klassen wird das wichtig.

    Warum? Kannst du mal ein kurzes Beispiel geben?
  8. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.

    public Person (int age, String name)
    	{
    		this.age = age;
    		this.name = name;
    	}


    Soetwas versuche ich grundsätzlich zu vermeiden, das mache ich lieber so:
    public Person (int newAge, String newName)
    	{
    		this.age = newAge;
    		this.name = newName;
    	}


    Das mit den abstrakten Klassen würde mich auch mal interessieren

    Grüße,
    Prog
  9. c****s

    prog schrieb:
    Soetwas versuche ich grundsätzlich zu vermeiden, das mache ich lieber so:
    public Person (int newAge, String newName)
    	{
    		this.age = newAge;
    		this.name = newName;
    	}


    Da haben wir's: Zwei unterschiedliche Standpunkte und beide gerechtfertigt. Ich versuche genau dein Beispiel zu vermeiden, weil die Namen der Parameter, das sind, was ich als Schnittstelle (z.B. über JavaDoc) nach außen an dritte gebe. Ich ziehe eindeutige, verständlich und lesbare Parameternamen allen anderen Designkriterien vor. Aber de gustibus non est disputandum.
  10. Ich nehme this sehr selten. Ich habe aber meistens auch keine gleichnamigen Variablen. This ist wenn dann angebracht, wenn du zwei Objekte derselben Klasse verknüpfen willst.

    public class Text {
    
        String text;
    
        public Text( Text hallo ) {
            this.text = hallo.text;
        }
    
    }


    Hier ist zudem mein eigene Schreibweise mit dem { auf derselben Zeile. Manche machen es so manche auf ner neuen Zeile. Das ist im Prinzip egal, solange ein anderer es lesen kann.
    Bzw. würde ich sowieso eine Methode public String Text.getContent() vorziehen, aber das ist wieder was anderes.
  11. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.


    Hier ist zudem mein eigene Schreibweise mit dem { auf derselben Zeile. Manche machen es so manche auf ner neuen Zeile. Das ist im Prinzip egal, solange ein anderer es lesen kann.
    Bzw. würde ich sowieso eine Methode public String Text.getContent() vorziehen, aber das ist wieder was anderes.


    Das mache ich auch so, und Attribute sind bei mir immer private und werden über getter und setter gelesen / verändert.

    Zusammenfassend lässt sich also sagen, dass es nur Geschmachsache ist, und jeder es so (außer er kriegts von der Firma vorgeschrieben) machen kann wie er will.

    Danke für die vielen Antworten

    Grüße,
    Prog
  12. e********l

    Machst du alle Attribute privat? Oder nur die die nicht vererbt werden? Bei letzterem wäre das eher nachteilig.
  13. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.

    Ich mach alle Attribute privat. Für den Zugriff verwende ich getter und setter Methoden.
  14. e********l

    prog schrieb:
    Ich mach alle Attribute privat. Für den Zugriff verwende ich getter und setter Methoden.

    Das beantwortet die Frage nicht. Auch für die Attribute die vererbt werden? Denn dann müsstest du unnötig viel Code schreiben und die Sichtbarkeiten (private, protected, package und public) wären in deinem Fall verschwendet.
  15. Autor dieses Themas

    prog

    Kostenloser Webspace von prog

    prog hat kostenlosen Webspace.

    Nein, die natürlich nicht. Das wäre doch blöd, dann müsste man die ja auch über die getter / setter ansprechen. Aber in dem Bereich hab ich eh noch nicht soviel Programmiert.
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!