Kommentare in Java

Status
Nicht offen für weitere Antworten.

Wang

Bekanntes Mitglied
Hallo Java-Freunde! :toll:

Ich muss folgende Aufgabe lösen:

(a) Die Klasse Euklid implementiert den euklidischen Algorithmus. Erweitern Sie diese Klasse sehr ausführlich um geeignete Kommentare. Die Kommentare sollten folgendes beinhalten:

(i) Ein Dokumentationskommentar, der die gesamte Klasse beschreibt und Sie als Autor nennt.
(ii) Ein Dokumentationskommentar, der das Programm mit dem aktuellen Datum versioniert.
(iii) Ein Dokumentationskommentar, der die Main-Methode beschreibt. Den Parameter args können sie wie im Beispiel aus dem Skript dokumentieren.
(iv) Ein- oder mehrzeilige Kommentare an Stellen, an denen Sie es für sinnvoll halten.

Bemerkung:
Um “schöne” javadoc-Kommentare zu schreiben, in denen zum Beispiel Formeln in mathematischer Notation angezeigt werden, ist es nötig, sich mit html auszukennen. Wir empfehlen deshalb zur Einarbeitung:
SELFHTML 8.1.2 (HTML-Dateien selbst erstellen).

Meine (Teil)Lösung:

Java:
/**
* <font color="green"><big>Euklid Klasse zum Bestimmen des groessten gemeinsamen Teilers ggT
* zweier natuerlicher Zahlen a und b mittels des Euklidschen Algorithmus</big></font>
*
* @author <b>Max Mustermann</b>
* @version <b>1.0 (29.10.2009)</b>
*/

public class Euklid
{
  /**
  * @param args Array mit Parametern - wird von dieser Methode nicht verwendet.
  */
  public static void main(String[] args)
  {
    // Variablen
    int a = 49;       // Zuweisung von definierten Anfangs-
    int b = 14;       // und Startwerten (Initialisierung)

    // Kontrollstruktur
    while(b!=0)
    {
       if(a>b)
       {
          a = a-b;
       }
       else
       {
          b = b-a;
       }
    }
    int ggt = a;
    System.out.print("Der GGT von 49 und 14 ist: " + ggt); // der Wert des größten gemeinsamen
                                                           // Teilers wird auf dem Bildschirm
                                                           // ausgegeben
  }
}

Bei Teilaufgabe (iii) weiß ich nicht ganz, wie ich die main-Methode beschreiben soll. ???:L
Wäre sehr nett, wenn jemand seine Meinung dazu schreibt und wirklich jeden noch so kleinen Fehler anprangert. :)
Vielen Dank.
 

hdi

Top Contributor
edit: Hab nicht gesehen dass du auch einen Klassenkommentar hast, das passt also.

Die main()-Methode, naja soviel gibt es dazu nicht zu sagen. Schreib einfach noch irgendeinen Satz über das @param Tag, zB "Dies ist die Methode in der das Programm startet" oder sowas.

Ansonsten hab ich noch was zu bemängeln:
"Variablen" und "Konstrollstruktur" sind kein sinnvoller Kommentar, ich meine das sieht man ja sofort, auch ohne Kommentar. Dein Kommentar sollte also lieber beschreiben, für was diese Variablen da sind und was die Kontrollstruktur denn überprüft/auswertet.
So wie du es zB im letzten Kommentar getan hast, der ist ja auch gut.

PS: Du könntest dir überlegen statt einzeilige Kommentare lieber mehrzeilige zu machen:
Java:
/*Der Wert des größten gemeinsamen Teilers wird auf dem Bildschirm ausgegeben */
System.out.print("Der GGT von 49 und 14 ist: " + ggt);

Wenn der Kommentar dann zu lang wird, wird er sauberer umgebrochen als bei einzeligen Kommentaren.
 

L-ectron-X

Gesperrter Benutzer
Bei Teilaufgabe (iii) weiß ich nicht ganz, wie ich die main-Methode beschreiben soll. ???:L

Java:
/**
 * Programmeinstiegspunkt - startet die Ausführung der Anwendung.
 * @param args Ein Feld mit Argumenten, welche dem Programm beim Aufruf mit übergeben werden können. 
 */
 
B

bygones

Gast
find ehrlich gesagt schade dass die Aufgabe so ins detail geht... das verleitet eher zu den berüchtigten "noise" Kommentaren...

je mehr kommentar ein code braucht umso unverstaendlicher ist er und das sollte nach verbesserung schreien - nicht noch ne zeile kommentar
 

L-ectron-X

Gesperrter Benutzer
Das mag schon sein, es geht hier aber sicher darum, die möglichen Kommentare zu kennen, zu unterscheiden und richtig einzusetzen.
 

Wang

Bekanntes Mitglied
Danke für eure Hilfe, ich habe alle Vorschläge umgesetzt. :toll:

Zwei Fragen:

1. Bin ich der Teilaufgabe (ii) mit meiner Datumsangabe gerecht geworden oder kann man das programmiertechnisch noch feiner schreiben?
2. Ich habe das Wort "Variablen" entfernt. Die Frage ist nur, durch was soll ich "Kontrollstruktur" ersetzen bzw. soll ich jede einzelne Befehlszeile beschreiben, um der Aufgabenstellung gerecht zu werden. ???:L

Hier die aktualisierte Quelldatei:

Java:
/**
* <font color="green"><big>Euklid Klasse zum Bestimmen des groessten gemeinsamen Teilers ggT
* zweier natuerlicher Zahlen a und b mittels des Euklidschen Algorithmus</big></font>
*
* @author <b>Max Mustermann</b>
* @version <b>1.0 (29.10.2009)</b>
*/

public class Euklid
{
  /**
  * Programmeinstiegspunkt - startet die Ausführung der Anwendung.
  * @param args Ein Feld mit Argumenten, welche dem Programm beim Aufruf mit übergeben werden können.
  */
  public static void main(String[] args)
  {
    /* Zuweisung von definierten Anfangs- und Startwerten */
    int a = 49;
    int b = 14;

    // Kontrollstruktur
    while(b!=0)
    {
       if(a>b)
       {
          a = a-b;
       }
       else
       {
          b = b-a;
       }
    }
    int ggt = a;
    /* Der Wert des größten gemeinsamen Teilers wird auf dem Bildschirm ausgegeben */
    System.out.print("Der GGT von 49 und 14 ist: " + ggt);
  }
}

Danke.
 

Marco13

Top Contributor
PS: Du könntest dir überlegen statt einzeilige Kommentare lieber mehrzeilige zu machen:
Java:
/*Der Wert des größten gemeinsamen Teilers wird auf dem Bildschirm ausgegeben */
System.out.print("Der GGT von 49 und 14 ist: " + ggt);
Das find' ich jetzt nicht so gut. Ich schreibe grunsätzlich innerhalb von Methoden NUR einzeilige Kommentare, die (bis auf seltenSTe Ausnahmen) Am Anfang der Zeile anfangen. Wenn man mal einen Block auskommentieren will, indem 20 "mini-Kommentare" mit /*...*/ sind, ist das ziemlich lästig (ja, markieren, Strg+7 ... Kennt hier noch jemand TextPad?)

@Wang: Ja, "Kontrollstruktur" sagt wirklich nicht viel aus, aber was soll man schon dazu sagen - man KÖNNTE noch die Grundidee hinter dem Euklid skizzieren, so wie
Code:
// Wenn eine Zahl zwei Zahlen teilt, dann auch
// ihre Differenz. Wende dieses Prinzip so lange
// an, bis der ggt gefunden ist (bla, bla...)
while (...)
oder so ähnlich...
 

Wang

Bekanntes Mitglied
Danke, Marco 13.

Ich habe deine Vorschläge umgesetzt.

Nochmals kurz meine Frage:
Passt das mit der Datumsangabe so, oder gibt es eine Möglichkeit, das noch "feiner" auszudrücken bzw. wie würde das ein professioneller Programmierer machen?

Thanks.
 

Marco13

Top Contributor
Was meinst du denn mit "feiner"? ???:L :bahnhof: Man könnte jetzt drüber philosophieren ob man ein Englisches Datumsformat nimmt, oder Bindestriche statt Punkte, aber was heißt "feiner"?
 
B

Beni

Gast
Übrigens: um fette oder farbige Schrift kümmert sich das Tool, welches den Kommentar dann z.B. in eine html-Seite verwandelt, all deine <b>s und etc sind überflüssig.
 
M

maki

Gast
Ich arbeite nur mit der Kommandozeile und benutze keine Tools.
Glaub ich nicht, ausser du programmierst so:
Code:
C:\>copy con Test.java
Mal ernsthaft, du brauchst nicht allzuviele HTML Tags verwenden, das JavaDoc Doclet kümmert sich darum dass die wichtigen Dinge Fett hervorgehoben werdne.
 

Wang

Bekanntes Mitglied
Glaub ich nicht, ausser du programmierst so:
Code:
C:\>copy con Test.java
Mal ernsthaft, du brauchst nicht allzuviele HTML Tags verwenden, das JavaDoc Doclet kümmert sich darum dass die wichtigen Dinge Fett hervorgehoben werdne.

Ich habe das JDK 6 installiert und arbeite nur mit dem Editor und der Kommandozeile. Das habe ich auch nur deshalb eingebaut, um etwas "herumzuspielen" - wohl typisch für einen Anfänger. ;)
Gibt es noch andere Möglichkeiten, Einfluss auf die Schriftgröße, etc. zu nehmen?
 
M

maki

Gast
Ich habe das JDK 6 installiert und arbeite nur mit dem Editor und der Kommandozeile. Das habe ich auch nur deshalb eingebaut, um etwas "herumzuspielen" - wohl typisch für einen Anfänger.
Fijnd ich gut was du da machst, die meisten Anfänger holen sich eine Super-Komplexe Proff. IDE die sie überfordert oder eine die nur an Schulen verwendet wird, finde dein Vorgehen am besten, leider machen das nicht alle so :)

Gibt es noch andere Möglichkeiten, Einfluss auf die Schriftgröße zu nehmen?
Ja, gibt es, solltest du aber imho lassen, JavaDocs sind mittlerweile so etwas wie ein Standard, jeder Javaentwickler liest zumindest die von Sun, deine sollten genauso aussehen, macht es einfacher für alle.
 

Wang

Bekanntes Mitglied
Fijnd ich gut was du da machst, die meisten Anfänger holen sich eine Super-Komplexe Proff. IDE die sie überfordert oder eine die nur an Schulen verwendet wird, finde dein Vorgehen am besten, leider machen das nicht alle so :)

Mir ist das Erlernen der Grundlagen echt am wichtigsten, der Rest (Entwicklungsumgebungen) kann später kommen.

Ja, gibt es, solltest du aber imho lassen, JavaDocs sind mittlerweile so etwas wie ein Standard, jeder Javaentwickler liest zumindest die von Sun, deine sollten genauso aussehen, macht es einfacher für alle.

Ausschlaggebend für die "HTML-Spielerei" war auch dieser Satz aus der Angabe:

Bemerkung:
Um “schöne” javadoc-Kommentare zu schreiben, in denen zum Beispiel Formeln in mathematischer Notation angezeigt werden, ist es nötig, sich mit html auszukennen. Wir empfehlen deshalb zur Einarbeitung:
SELFHTML 8.1.2 (HTML-Dateien selbst erstellen).

Danke für eure Hilfe soweit.
 

Wang

Bekanntes Mitglied
Kurz zu dem Rest der Aufgabe:

(b) Erzeugen Sie die Dokumentation in einem Unterverzeichnis \doku:
javadoc -d .\doku Euklid.java

(c) Falls alles geklappt hat, erzeugen Sie eine weitere JAR-Datei, in der die dokumentierte Klasse Euklid und die erstellte Dokumentation zusammengefasst sind:
jar cvf euklid.jar Euklid.* .\doku

(b) ist klar, aber die Formulierung "eine weitere JAR-Datei" verunsichert mich, denn ich musste doch bisher in dieser Aufgabe keine JAR-Datei erstellen ???:L

Was genau ist mit der "dokumentierten Klasse Euklid" gemeint; ist das einfach die über javac erzeugte Datei?

Heißt das, dass ich die Datei Euklid.java gar nicht in die JAR-Datei packen soll?

Danke
 

Leroy42

Top Contributor
(b) ist klar, aber die Formulierung "eine weitere JAR-Datei" verunsichert mich, denn ich musste doch bisher in dieser Aufgabe keine JAR-Datei erstellen ???:L

Tja dann erstell eben einfach eine .jar-Datei

Was genau ist mit der "dokumentierten Klasse Euklid" gemeint; ist das einfach die über javac erzeugte Datei?

Wahrscheinlich ja.

Heißt das, dass ich die Datei Euklid.java gar nicht in die JAR-Datei packen soll?

Richtig die .java-Dateien gehören nicht in eine .jar-Datei hinein. Nur die .class-Dateien sind notwendig.
 

Wang

Bekanntes Mitglied
Danke Leroy42.

Ist es normal, dass die Dateien beim Packen in eine JAR-Datei komprimiert werden?

Wie kann ich nachsehen, was in einer JAR-Datei enthalten ist (um zu überprüfen, ob die gewünschten Dateien auch enthalten sind)?
 

Wang

Bekanntes Mitglied
Danke, ich habe heute wieder sehr viel dazugelernt. :toll:

Eine letzte Frage habe ich aber noch:
ist es normal, dass in der JAR-Datei der Unterordner doku verschwunden ist?
 

Leroy42

Top Contributor
ist es normal, dass in der JAR-Datei der Unterordner doku verschwunden ist?

Keine Ahnung wie du die .jar-Datei erstellt hast. Wenn der Unterordner doc beim erstellen
nicht angegeben wurde wird er eben nicht mit aufgenommen.

Wenn du allerdings kein package doc hast oder in diesem Unterordner
keine Resourcen sind brauch die .jar-Datei ihn auch nicht.
 

Wang

Bekanntes Mitglied
Ich habe das über diesen Befehl gemacht:

jar cvf Eukild.jar Euklid.* -C doku .

Im Ordner Euklid befindet sich die Klasse Euklid und im Unterordner ist die Dokumentation.
 

Nicer

Bekanntes Mitglied
Commis benutze ich eig nur dassich etwas :

1) Wichtiges nicht vergesse
2) etwas was noch bugs hat makiert
3) wennich es anderen erklären will

Zu deiner Aufgabe :

Zur not beschreibst du den Ablauf der Main() , das sollte passen

MfG Nicer
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S OOP Java Kommentare, Programm besser verstehen Java Basics - Anfänger-Themen 6
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
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
B Kommentare richtig schreiben Java Basics - Anfänger-Themen 8
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
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 23
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 2
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
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
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben