Java Klassen kommentieren?

Status
Nicht offen für weitere Antworten.

nettchen

Aktives Mitglied
Hallo,

habe mal ne frage die mit dem direkten Programmieren eigentlich nix zu tun hat, sondern mit den Kommentaren für die JAVA Doc

Und zwar wie kommentiert man richtig? Also müssen alle Paramter auch dokumentiert sein, und muss bei methoden nur die Aufgabe dokumentiert werden oder auch wie die aufgabe gelöst wird
 

nettchen

Aktives Mitglied
Und da fällt mir gleich noch etwas ein müssen all get und set-Methoden kommentiert werden, habe in meiner einen Klasse nämlich fast 30 Parameter und da macht das eine heidenarbeit?
 
B

Beni

Gast
"Müssen" tuest du garnichts, aber je mehr Dokumentation desto besser.

Was die Klasse überhaupt sein soll, ist IMHO der wichtigste Kommentar. Den solltest du nicht übergehen.
Bei Methoden beschreibe ich nur das "was". Das "wie" ist selten wichtig (und das kann man zur Not auch im Quellcode nachschauen).
Argumente für Methoden würde ich unbedingt dokumentieren, später rauszufinden welches Argument was macht, ist extrem mühsam.
Setter: nutzt die Gelegenheit und beschreib für was die gesetzte Variable gut ist (was der Setter macht, ist jedem klar...).
Getter: ein Verweis auf den Setter, mehr nicht.

Und natürlich gibt es immer Ausnahmen... :wink:
 

schalentier

Gesperrter Benutzer
Tja, klare Regeln gibts da nicht. Liegt in deinem Ermessen...

ich versuch mich an: "Soviel wie noetig, sowenig wie moeglich" zu halten. Kommentare sollten erklaeren, warum und wozu die Methode oder der Parameter gebraucht wird. Das wie und was sollte in selbstklaerendem Quellcode auch ohne viel Geschafel erkennbar sein.

Bei Gettern und Settern musst du schauen, ob das selbstklaerend ist, oder nicht. Sinnlos ist in meinen Augen, wenn an 30 Getter/Settern immer steht: Setter fuer Name, Getter fuer Name, ...

Es gibt auch "radikale" Stimmen die behaupten, Kommentare sind in gutem Quellcode ueberfluessig, wenn die Namen von Methoden, Klassen und Parametern selbstklaerend gewaehlt sind. Wichtiger ist ein Dokument, in dem das Konzept erklaert wird, was im Normalfall mehrere Klassen betrifft. Ein guter Ansatz sind hier UML Diagramme.
 

nettchen

Aktives Mitglied
naja es ist halt für ne studienarbeit und da mein Prof zurezeit im Urlaub ist kann ich ihn nicht fragen, und dachte ich frag mal euch.

Wegen den Gettern und Settern bin ich mir noch am meißten unsicher, weil dadurch das die Klassen die ich aktuelle kommentiere nur Klassen zur Speicherng für Objekte dind, also nur aus Konstruktor und get bzw set methoden bestehen, finde ich es halt ein bischen sinnlos, jede get und set methode zu kommentieren, da ja wirklich nicht mehr drin steht als setzt Name auf neuen wert bei set und bei get lifert Name?
 
B

Beni

Gast
Sinnlos:
Code:
/*
 * Setzt den Namen
 * @param name Der Name
 */
public void setName( String name ){
  this.name = name;
}

Sinvoller:
Code:
/*
 * Der Name hat keine direkte Auswirkung auf die Logik, er
 * dient nur dem Benutzer zur Wiedererkennung des Objektes.
 * Entsprechend sind Namen wie "Heinz" oder "Fritz" kryptischen
 * Konstrukten wie "lbj4", "rgt86.h" vorzuziehen.
 * @param name der neue Namen, nicht null
 */
public void setName( String name ){
  this.name = name;
}
 

nettchen

Aktives Mitglied
ja und genau so wie du deinen sinnlos Kommentar aufgebaut hast sieht meiner aus, und wie du schon drüber geschrieben hast ist er total sinnlos, aber über jede get und set methode jetzt so nen langen Text zu schreiben, da sitz ich je in drei tagen noch dran wie gesagt , ich kommentiere erstmal nur die datenklassen für eine schnittstelle.
Mal sehen vielleciht erwisch ich ja aus der uni mal jemand den ich fragen kann was sich der professor gerne wünscht

Dank euch auf alle fälle schon mal , über eure erfahrung mit profs in bezug auf kommentare freu ich mich
 

nettchen

Aktives Mitglied
Hallo, habe mal ne Klasse kommentiert, habe die get und set methoden erst mal gelassen und nur den rest kommentiert, lest ihr das mal bitte und sagt ob das so ok ist, ich hab jetzt nicht so viel geschrieben, aber habe gerade erfahren das die kommentare in english sind, und hoffe es ist ausreichend.

Code:
import java.io.Serializable;
/**
 * This class is a response object for the method assignAttach.
 * 
 * The method assignAttach confirms the assignment of a attachment.
 * 
 * @author Janett Vollstädt
 * @version 1.0
 *
 */
public class AssignAttachResponse implements Serializable
{

	/**
	 * The serialID, this is for the correct serialisation and deserialisiation of the object
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * The errorCode, this is the code for the error 
	 * 
	 * The code is 0, if no error has occurred 
	 */
	private int errorCode;
	
	/**
	 * The errorMessage, this text is the suited errorText for the errorCode 
	 * 
	 * The errorMessage is null, if the errorCode is null, because no error has occurred 
	 */
	private String errorMessage;
	
	/**
	 * Creates a new response object , with the with a errorCode and a errorMessage.	 * 
	 * 
	 * @param errorCode , the errorCode if a error has occurred , otherwise 0
	 * @param errorMessage, the errorMessage if a error has occurred , otherwise null
	 */
	public AssignAttachResponse(int errorCode, String errorMessage)
	{
		this.errorCode = errorCode;
		this.errorMessage = errorMessage;
	}

	public int getErrorCode()
	{
		return errorCode;
	}

	public String getErrorMessage()
	{
		return errorMessage;
	}

	public void setErrorCode(int errorCode)
	{
		this.errorCode = errorCode;
	}

	public void setErrorMessage(String errorMessage)
	{
		this.errorMessage = errorMessage;
	}
}

Also was meint ihr, ist das aktzeptabel, ich weiß das ich bei größeren Methoden mehr kommentieren muss, aber so für die datenklassen reicht das doch oder?
 

mikachu

Top Contributor
das reicht :)

im eclipse weiß ich, dass man da autokommentare bei jeder methode zumindest einstellen kann, wie die aussehen etc... und was das so standardmäßig drin steht...
das gibts vll auch für klassenvariablen, weiß ich aber jezt nicht.
 

nettchen

Aktives Mitglied
also das habe ich auch verwendet also da steht dann halt sowas wie @author oder @param und so oder gibts da noch was anderes was man einstellen kann, das man mehr erhält
 

nettchen

Aktives Mitglied
Hat noch jemand ne idee wie ich errorcode und errormessage kommentieren könnte, also der errorcode ist der fehlercode und die errormessage logischerweise der dazugehörige text, aber kann ich das so einfach dahinterschreiben?
 

Philip

Mitglied
Also dass "errorMessage" die "error message" ist, finde ich nicht erwähnenswert. ;)
Schreib doch lieber genauer, was der errorCode darstellen soll. Wenn es ein Code ist, wie wird er decodiert? Hast du da irgendeine Tabelle mit bekannten ErrorCodes oder sowas? Vielleicht dass der errorCode dem HTTP-Statuscode entspricht oder sonst irgendeinem bekannten Standard. Oder eine eigene Aufschlüsselung, wenn es ein eigener Code ist.

Oder wie soll der errorCode in der Anwendung zum Tragen kommen? Was für einen Zweck hat er? Wann treten diese Errors auf, usw?


Aber zu deiner Beruhigung: ich schreib auch oft so einen Satz in die Doku, der eigentlich überflüssig wäre, weil selbstredende Parameternamen schon alles gesagt haben. Trotzdem muss der Kommentar aus meiner Sicht einen Mehrwert an Information liefern. Sonst ist er überflüssig und macht nur den Quellcode unübersichtlicher.

Z.B. ein aktuelles Beispiel:

Ich habe eine Klasse, die hat u.a. die Attribute "id", "name" und "title". Da fand ich es z.B. wichtig zu beschreiben, wie sich die Attribute voneinander abgrenzen.
"id" ist nur ein internes Attribut, um Instanzen eindeutig voneinander unterscheiden zu können und sicht nicht zur Ausgabe an der Oberlfäche gedacht, schon gar nicht darf der User die id irgendwie ändern.
"name" ist der benutzerfreundliche Name, nur zur Darstellung der Instanz auf der Oberfläche gedacht
Und das Attribut "title" gehört zur Anwendungslogik.
 

NTB

Bekanntes Mitglied
Mach Dir beim Schreiben der Kommentare bewusst, wofür sie da sind. Im Moment wirkt es so, dass Du die Kommentare reinschreibst, weil der Prof das nunmal erwartet.

Die Kommentare sollen fremden Programmierern helfen, sofort Deinen Quelltext verstehen zu können. Spätestens nach vier Wochen gehörst Du übrigens auch zu den fremden Programmierern, weil Du nicht mehr weisst, was Du da eigentlich verzapft hast :)

Also versetz Dich in die Lage anderer: Sie müssen beim Lesen verstehen, was Dein Code macht. Genau dann sind die Kommentare gut.

Für Deinen Prof kannst Du dann noch über die getter und setter Kommentare einfügen. Da würde ich glaube ich einfach "Setter" und "Getter" als Kommentar einfügen. Dann ist klar, dass keine Logik hinter steckt.
 

nettchen

Aktives Mitglied
Da hast du nicht ganz unrecht, weil ich moment ja auch nur datenklassen kommentiere, die halt keine wichtigen Methoden haben und die namen der atttribute finde ich aussagekräftig, wenn ich dann bei den logikklassen bin werde ich das ganze ach etwas ausführlicher machen, bloß diese Klassen hier kommentiere ich nur weil ich muss.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
T Wie finde ich passende Java Klassen & Methoden? Java Basics - Anfänger-Themen 4
I Klassen Mehrere Java Klassen in einer .java Datei Java Basics - Anfänger-Themen 7
lonelywanderer Erste Schritte Wie wende ich "Klassen" in Java an? Java Basics - Anfänger-Themen 8
C Java Klassen Design? Java Basics - Anfänger-Themen 5
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
M xml log4j überschreiben für/in Java Klassen Java Basics - Anfänger-Themen 4
M OOP Java Klassen Microedition vs. Java 2 Standard Edition Java Basics - Anfänger-Themen 5
S Innere Klassen in Java Java Basics - Anfänger-Themen 4
M Wie bilde ich folgende Java Klassen in UML ab Java Basics - Anfänger-Themen 2
J Java-Klassen außerhalb von Eclipse debuggen Java Basics - Anfänger-Themen 7
D Java Klassen Java Basics - Anfänger-Themen 8
K OOP Java import zwei gleichnamiger Klassen Java Basics - Anfänger-Themen 5
M java erkennt import-klassen nicht?! Java Basics - Anfänger-Themen 39
J In JSP Java-Klassen einbinden Java Basics - Anfänger-Themen 3
N Aufrufen von .java Klassen in einem Projekt Java Basics - Anfänger-Themen 2
I [Java] Umgang mit abstrakten Klassen, Interfaceklassen (BSP) Java Basics - Anfänger-Themen 12
M Problem mit dem Klassen aus dem java.io Paket Java Basics - Anfänger-Themen 9
M Aus wieviel Klassen darf in Java eine (Programm)besitzen? Java Basics - Anfänger-Themen 21
G Anzahl der Klassen in Java Java Basics - Anfänger-Themen 7
A von Java-Beans Klassen aufrufen Java Basics - Anfänger-Themen 3
G Frage zum Abspeichern von Java-Klassen Java Basics - Anfänger-Themen 9
G Aufruf von JAVA-Klassen aus XML-Dialekt, Java-Skript o. JSP Java Basics - Anfänger-Themen 3
G Java Programm das Klassen Implementiert Java Basics - Anfänger-Themen 5
F Java Klassen finden Java Basics - Anfänger-Themen 3
I Java Applet mit Klassen Java Basics - Anfänger-Themen 5
T Java Klassen benennung? Java Basics - Anfänger-Themen 4
L Java applet und andere Klassen unauffindbar? Java Basics - Anfänger-Themen 2
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben