Kommentare richtig schreiben

Status
Nicht offen für weitere Antworten.
B

binverwirrt

Gast
Hi,
wie man Kommentare macht weiß ich, doch habe ich in meiner Schule 4 verschiedene Programmierlehrer, jeder sagt mir etwas anderes zu Kommentaren

Hauptsälich sagen sie: (zb)

1. Selbstverstänldiche sachen wo der Methodenname schon genug aussagt braucht keine Kommentare mehr

Code:
public void printHaeuser()
{
     for(Häuser h: wohnanlage) 
     { 
         System.out.println(h) 
     }
}

2. Eine kleine Beschreibung die in deutsch (keine java begriffe) geschrieben ist soll IMMER sein, nie wie etwas gemacht wird erkährt, sondern nur was es tut

Code:
/**
* Gibt alle vorhandenen Häuser aus.
*/
public void printHaeuser()
{
     for(Häuser h: wohnanlage) 
     { 
         System.out.println(h) 
     }
}

3. Alles java-spezifisch erklähren

Code:
/**
* Gibt alle vorhandenen Häuser in der arraylist wohnanlage aus.
*/
public void printHaeuser()
{
     for(Häuser h: wohnanlage) 
     { 
         System.out.println(h) 
     }
}

4. alles

Code:
/**
* Gibt alle vorhandenen Häuser in der arraylist wohnanlage aus.
*/
public void printHaeuser()
{
     for(Häuser h: wohnanlage)  //anfang: durchläuft das arraylist wohnanlage und gibt alle häuser aus
     { 
         System.out.println(h) 
     } //ende von ausgabe von wohnanlage
}

Also, das wenn es für MICH geschrieben ist, oder für einen Lehrer (je nach lehrer halt) ich es so oder so machen kann weiss ich, doch wie ist es allgemein (in der berufswelt)?
zb sollte der code ungefähr aus 60% code und 40% kommentaren bestehen habe ich mir sagen lassen (richtiline)

So, hoffe ich konnte es deutlich genug erkähren
danke schonmal
 

diggaa1984

Top Contributor
Am besten ist es sich gleich an JavaDoc-Convention zu gewöhnen.

Da kannst dir mit Hilfe des Javadoc-tools auch gleich eine passende html-doku draus basteln, die bequem zu lesen ist
 

Murray

Top Contributor
Variante 4 trägt m.E. nicht zum besseren Verständnis bei; die Kommentare innerhalb der Methode beschreiben Selbstverständlichkeiten, die man ohne den Kommentar nicht weniger gut versteht.

An Variante 3 gefällt mir nicht, dass hier ohne Not ein für das Verständnis der Methode irrelevantes Implementierungsdetail (nämlich die Tatsache, dass es sich um eine ArrayList handelt) in den Kommentar gezogen wird - kommt man jetzt auf die Idee, anstelle der ArrayList eine andere Collection zu verwenden, muss man in dieser Methode den Kommentar (aber sonst nichts!) ändern.

Man könnte m.E. ruhig noch erwähnen, wohin ausgegeben wird:
Code:
/**
* Gibt alle Häuser der Wohnanlage auf die Standardausgabe aus.
*/
public void printHaeuser() {
     for( Häuser h : wohnanlage) {
         System.out.println( h)
     }
}
 

musiKk

Top Contributor
1. Alles, was public ist, sollte meiner Meinung nach dokumentiert werden. Ich kanns jedenfalls nicht leiden, Lücken in den Javadoc-Seiten zu haben.
2./3. Bei sowas sollte List oder gar ArrayList nicht erwähnt werden, weil dies Implementationsdetails sind, die den Nutzer des Objekts und dessen Methoden nicht zu interessieren haben.
Implementationsdetails sollten nur selten auftauchen, z. B. wenn es um Performance geht. Was aber interessant ist, ist das, was nun passiert. Wie werden die Häuser geschrieben? Wohin?
4. ist sehr typisch für Programmieranfänger. Das ist jetzt nicht unbedingt abwertend gemeint. Auf lange Sicht gewöhnt man sich das eh ab.

Das mit den 60/40... naja... ich bin jetzt nicht besonders industriegeprägt, sondern großteils eher (noch) akademisch. Kommentare sollten präzis und nicht ausufernd sein. Methoden- und Klassenkommentare im Javadoc-Stil. Mit anderen Kommentaren sehr sparsam umgehen. Als Richtlinie dabei gilt: Nie das in Kommentare schreiben, was gemacht wird (so wie in 4.), sondern warum. Denn, was gemacht wird, steht ja schon im Quelltext. Wenn da ein for(...) steht und rechts vom : ist eine List, dann ist ja klar, dass man über selbige rennt. Solche Kommentare lenken nur ab. Wenn aber etwas gemacht wird, was auf den ersten Anschein nicht ganz klar ist, dann sollte gesagt werden, warum man das doch tut. Ist nicht ganz leicht, da ein Beispiel zu konstruieren. Zumal bei kleinen Beispielprogrammen sowas auch eher nicht auftritt.

Für englisch bin ich persönlich auch.
 

Wildcard

Top Contributor
3. und 4. sind absoluter Unsinn.
Zunächst musst du unterscheiden zwischen JavaDoc und Kommentaren.
Javadoc sollte bei jeder öffentlichen Methode vorhanden sein. Dort beschreibst du was ein Entwickler der diese Methode verwenden möchte zu erwarten hat.
-Wie die Methode arbeitet
-Erklärung der Parameter (welche Werte sind erlaubt und liefern welche Resultate)
-Beschreibung des zu erwartenden Rückgabewerts (kann zB null zurückgeliefert werden)
-mögliche Exceptions
-links auf ähnliche/weiterführende Methoden
...

Dann noch die Kommentare die dort angebracht werden sollten, wo Erklärungsbedarf besteht (der Code leuchtet nicht sofort ein). In Kommenaren wird immer beschrieben warum etwas getan wird, nicht wie.
Fügst du zB einen Bugfix im Code ein, bietet es sich an die Bugnummer im Quellcode an passender Stelle per Kommentar zu referenzieren, damit sich der interessierte Entwickler näher über den Bug informieren kann.
 

didjitalist

Bekanntes Mitglied
die information, wie eine methode intern arbeitet ist nur dann von belang, wenn genau das diese methode auszeichnet. wenn man also beispielsweise zwei methoden anbietet, die dasselbe leisten, aber unterschiedliche algorithmen verwenden.

ansonsten sollte für alle öffentlichen methoden folgendes kommentiert sein:
- was leistet die methode
- aufzählung von nötigen vorbedingungen zur korrekten funktionsweise der methode, wenn sie nötig sind
- wofür sind die parameter da, welche werte sind erlaubt, führen unerlaubte werte zu exceptions?
- was wird zurückgeliefert, ist das objekt eine referenz auf interna? kann null geliefert werden?
- weitere mögliche exceptions, die bei gültigen (!) parameterwerten auftreten können (laufzeit fehler)

für die oben genannte methode sähe ein kommentar unter diesen umständen ungefähr so aus:

Code:
/** 
* Gibt alle Häuser dieser Wohnanlage auf die Standardausgabe {@link System.out} aus.
*
* @see Häuser#toString()
*/ 
public void printHaeuser() { 
     for( Häuser h : wohnanlage) { 
         System.out.println( h) 
     } 
}

sollte es möglich sein, dass 'wohnanlage' null ist, muss eine NullPointerException erwähnt werden. z.b. wenn das feld erst initialisert wird, wenn das erste haus hinzugefügt wird. es macht aber durchaus sinn, diesen zustand einfach zu unterbinden, indem wohnanlage auf jeden fall immer initialisiert ist.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Autogenerierte Eclipse-Kommentare nerven Java Basics - Anfänger-Themen 5
MiMa JavaDoc Kommentare Java Basics - Anfänger-Themen 12
I Problem mit Properties-Kommentare Java Basics - Anfänger-Themen 2
J Kommentare in Blockschrift? Java Basics - Anfänger-Themen 21
S OOP Java Kommentare, Programm besser verstehen Java Basics - Anfänger-Themen 6
W Kommentare in Java Java Basics - Anfänger-Themen 26
0x7F800000 "Kommentare" an Dateien hinzufügen/auslesen? [edit: "Metadaten"] Java Basics - Anfänger-Themen 4
T HTML Kommentare mit regulären Ausdrücken entfernen Java Basics - Anfänger-Themen 4
B Kommentare prüfen Java Basics - Anfänger-Themen 7
R aus Text Kommentare entfernen Java Basics - Anfänger-Themen 12
M Kommentare in eclispe Java Basics - Anfänger-Themen 6
E Kommentare ausfiltern Java Basics - Anfänger-Themen 3
M Kommentare - so korrekt? Java Basics - Anfänger-Themen 8
M Kommentare Java Basics - Anfänger-Themen 3
S Wie gebe ich den Source Code ohne Kommentare aus? Java Basics - Anfänger-Themen 4
I Kommentare! Java Basics - Anfänger-Themen 3
J Datei-Details /-Infos wie Kommentare, Autor lesen/schreiben Java Basics - Anfänger-Themen 2
N Kommentare in Properties-Dateien Java Basics - Anfänger-Themen 6
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
B Semaphoren in Abhängigkeit an Bedingungen richtig setzen Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
JensXF Methode überschreiben, so richtig? Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
L Ist der Code richtig Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
J Module richtig einbinden Java Basics - Anfänger-Themen 2
B Sind meine If-Statements richtig angesetzt ? Java Basics - Anfänger-Themen 27
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
P Stringbuilder richtig einsetzen Java Basics - Anfänger-Themen 1
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
A Array richtig füllen Java Basics - Anfänger-Themen 2
S String richtig formatieren Java Basics - Anfänger-Themen 2
P Methoden richtig anwenden Java Basics - Anfänger-Themen 3
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
X Best Practice Ein int Array richtig mischen Java Basics - Anfänger-Themen 20
D Richtig Vorbereiten auf eine Programmier Klausur Studium. Java Basics - Anfänger-Themen 7
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
T Sortieralgorithmen richtig? Java Basics - Anfänger-Themen 1
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
S Wie implementiere ich MouseDragged richtig Java Basics - Anfänger-Themen 7
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
P Input/Output PQ-Formel wird nicht richtig berechnet Java Basics - Anfänger-Themen 6
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
H Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 2
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
B Wie instanzisiert man einen Cursor richtig? Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
N Best Practice Ist die Sortierung richtig? Java Basics - Anfänger-Themen 3
J Erste Schritte Lottozahlen richtig generieren. Java Basics - Anfänger-Themen 12
J Behauptung so richtig? Java Basics - Anfänger-Themen 10
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
A Methode richtig überladen Java Basics - Anfänger-Themen 6
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
U Mehrfach verwendete Sub-Klassen richtig einbinden Java Basics - Anfänger-Themen 4
L Schleife funktioniert nicht richtig Java Basics - Anfänger-Themen 12
Meeresgott OOP Richtig mit java.util.Property umgehen Java Basics - Anfänger-Themen 22
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
M Abstände richtig wiedergeben Java Basics - Anfänger-Themen 2
S nio move() funktioniert nicht richtig Java Basics - Anfänger-Themen 2
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
B Ist meine Klasse richtig kommentiert? Java Basics - Anfänger-Themen 2
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
kilopack15 Lösungsansatz richtig? Java Basics - Anfänger-Themen 23
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
K Erste Schritte Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 22
U Richtig *.properties speichern Java Basics - Anfänger-Themen 0
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
3 Gitternetz richtig darstellen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben