ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Σχετικά έγγραφα
Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Finite Field Problems: Solutions

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

(C) 2010 Pearson Education, Inc. All rights reserved.

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

(Διαφάνειες Νίκου Βιδάκη)

Section 9.2 Polar Equations and Graphs

SOAP API. Table of Contents

How to register an account with the Hellenic Community of Sheffield.

Αντικειμενοστρεφής Προγραμματισμός

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Section 8.3 Trigonometric Equations

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

The Simply Typed Lambda Calculus

ST5224: Advanced Statistical Theory II

Συντακτικές λειτουργίες

MathCity.org Merging man and maths

Galatia SIL Keyboard Information

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Σημασιολογικός Ιστός (Semantic Web) - XML

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

the total number of electrons passing through the lamp.

EE512: Error Control Coding

The Nottingham eprints service makes this work by researchers of the University of Nottingham available open access under the following conditions.

2 Composition. Invertible Mappings

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

derivation of the Laplacian from rectangular to spherical coordinates

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL Data Mining on the Web

Partial Trace and Partial Transpose

Instruction Execution Times

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

Other Test Constructions: Likelihood Ratio & Bayes Tests

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Case 1: Original version of a bill available in only one language.

Λογισμικά για Στατιστική Ανάλυση. Minitab, R (ελεύθερο λογισμικό), Sas, S-Plus, Stata, StatGraphics, Mathematica (εξειδικευμένο λογισμικό για

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

C.S. 430 Assignment 6, Sample Solutions

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

CHAPTER 12: PERIMETER, AREA, CIRCUMFERENCE, AND 12.1 INTRODUCTION TO GEOMETRIC 12.2 PERIMETER: SQUARES, RECTANGLES,

Δομές Δεδομένων & Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Approximation of distance between locations on earth given by latitude and longitude

Αντικειμενοστρεφής Προγραμματισμός

ιαδικτυακές Εφαρµογές

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

Math 6 SL Probability Distributions Practice Test Mark Scheme

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

Démographie spatiale/spatial Demography

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your

Οδηγίες χρήσης υλικού D U N S Registered

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

Fourier Series. MATH 211, Calculus II. J. Robert Buchanan. Spring Department of Mathematics

Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Chap. 6 Pushdown Automata

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Οδηγίες χρήσης. Registered. Οδηγίες ένταξης σήματος D-U-N-S Registered στην ιστοσελίδα σας και χρήσης του στην ηλεκτρονική σας επικοινωνία

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Automating Complex Workflows using Processing Modeler

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

Advanced Subsidiary Unit 1: Understanding and Written Response

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Ειδική διάλεξη 2: Εισαγωγή στον κώδικα της εργασίας

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

Στρατηγικές Ασφάλειας

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

4.6 Autoregressive Moving Average Model ARMA(1,1)

Strain gauge and rosettes

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

Lecture 2. Soundness and completeness of propositional logic

iidoc Πρόγραμμα αυτόματης τεκμηρίωσης κώδικα C++

Every set of first-order formulas is equivalent to an independent set

Κλάσεις στην Python. Δημιουργία κλάσεων

Calculating the propagation delay of coaxial cable

Φροντιςτήριο. Linked-List

Matrices and Determinants

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

Using the QGIS Browser

Inverse trigonometric functions & General Solution of Trigonometric Equations

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Solutions to Exercise Sheet 5

Statistical Inference I Locally most powerful tests

Transcript:

ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια του κώδικα. Σε αυτό το εργαστήριο θα δούμε πως γράφουμε Javadoc σχόλια στο κώδικα και πώς να χρησιμοποιήσουμε τις δυνατότητες που μας παρέχει η Javadoc για να κάνουμε τεκμηρίωση του κώδικα παράγοντας αρχεία html. Σε όλες τις εργασίες του μαθήματος ΕΠΛ133, θα χρησιμοποιήσετε τον τρόπο που περιγράφεται σε αυτό το εργαστήριο για να κάνετε την τεκμηρίωση του κώδικα. Javadoc Comments Η Javadoc αναγνωρίζει ειδικά σχόλια /... /, που επισημαίνονται με μπλε χρώμα στο Eclipse (τα κανονικά σχόλια // και / / επισημαίνονται με πράσινο χρώμα). Η Javadoc επιτρέπει να βάλουμε σχόλια στις κλάσεις, τους κατασκευαστές, τα παιδία, τις διεπαφές και τις μεθόδους. Javadoc Tags Για να παραχωθούν τα σχόλια σε μορφή αρχείων html, η Javadoc χρησιμοποίει ετικέτες (tags). Οι ετικέτες είναι λέξεις κλειδιά που αναγνωρίζονται από τη Javadoc και χρησιμοποιούνται ανάλογα με τον τύπο της πληροφορίας που ακολουθεί. Οι πιο χρησιμοποιημένες ετικέτες είναι: @author [author name] - identifies author(s) of a class or interface. @version [version] - version info of a class or interface. @param [argument name] [argument description] - describes an argument of method or constructor. @return [description of return] - describes data returned by method (unnecessary for constructors and void methods). @exception [exception thrown] [exception description] - describes exception thrown by method. @throws [exception thrown] [exception description] - same as @exception. Javadoc in Eclipse Η Eclipse μπορεί να παράγει σχόλια Javadoc για κλάσεις και μεθόδους. Για να γίνει αυτό: 1. Τοποθετήστε το δείκτη στη κλάση ή τη μέθοδο 2. Δεξί click Source -> Generate Element Comment 3. Παράγονται σχόλια Javadoc, αλλά πρέπει να γράψετε τις περιγραφές Για να παράγει η Eclipse τα αρχεία html: ΕΠΛ133 Εργαστήριο. Υπεύθυνος Εργαστηρίων: Πύρρος Μπράτσκας 1

1. Διαλέγετε το Project στη λίστα των project αριστερά 2. Μετά, στο menu: Project->Generate Javadoc 3. Finish Types of Javadoc comments Υπάρχουν 2 είδη σχολίων Javadoc: σχόλια σχετικά με τις κλάσεις (class-level comments) και σχόλια σχετικά με τα μέλη της κλάσης (member-level comments). Τα σχόλια κλάσεων περιγράφουν τις κλάσεις και τα σχόλια μελών περιγράφουν τα χαρακτηριστικά και τις μεθόδους των κλάσεων. Class-level Comments Τα σχόλια κλάσεων παρέχουν μια περιγραφή της κλάσης, και τοποθετούνται ακριβώς πάνω από τον κώδικα που δηλώνει την κλάση. Αυτά τα σχόλια γενικά περιέχουν τις ετικέτες @author, και μια περιγραφή της κλάσης. Ένα παράδειγμα σχόλιων κλάσεων είναι το παρακάτω: / Brief summary of this class, ending with a period. It is common to leave a blank line between the summary and further details. The summary (everything before the first period) is used in the class or package overview section. The following inline tags can be used (not an exhaustive list): {@link some.other.class.documentation} for linking to other docs or symbols {@code code goes here} for formatting as code {@literal <>[]()foo} for interpreting literal text without converting to HTML markup or other tags. Optionally, the following tags may be used at the end of class documentation (not an exhaustive list): @author John Doe @version 1.0 @since 5/10/15 @see some.other.class.documentation @deprecated This class has been replaced by some.other.package.betterfilereader / public class FileReader { } Με τον ίδιο τρόπο μπορούμε να σχολιάσουμε τις διεπαφές (interface) και enums. Member-level Comments Τα σχόλια μελών, περιγράφουν τα πεδία, τις μεθόδους, και κατασκευαστές. Τα σχόλια πριν τις μεθόδους και τους κατασκευαστές μπορεί να περιέχουν ετικέτες που περιγράφουν τις παραμέτρους της μεθόδου. Το σχόλιο μεθόδου μπορεί επίσης να περιέχει ετικέτες επιστροφής @return. Ένα παράδειγμα είναι οι παρακάτω: ΕΠΛ133 Εργαστήριο. Υπεύθυνος Εργαστηρίων: Πύρρος Μπράτσκας 2

/ Brief summary of method, ending with a period. Further description of method and what it does, including as much detail as is appropriate. Inline tags such as {@code code here}, {@link some.other.docs}, and {@literal text here} can be used. If a method overrides a superclass method, {@inheritdoc} can be used to copy the documentation from the superclass method @param stream Describe this parameter. Include as much detail as is appropriate Parameter docs are commonly aligned as here, but this is optional. As with other docs, the documentation before the first period is used as a summary. @return Describe the return values. Include as much detail as is appropriate Return type docs are commonly aligned as here, but this is optional. As with other docs, the documentation before the first period is used as a summary. @throws IOException Describe when and why this exception can be thrown. Exception docs are commonly aligned as here, but this is optional. As with other docs, the documentation before the first period is used as a summary. Instead of @throws, @exception can also be used. @since 2.1.0 @see some.other.class.documentation @deprecated Describe why this method is outdated. A replacement can also be specified. / public String[] read(inputstream stream) throws IOException { return null; } Package Documentation Από την έκδοση 1.5 της Java, είναι δυνατό να κάνουμε τεκμηρίωση του πακέτου (package) χρησιμοποιώντας ένα αρχείο που ονομάζεται package-info.java. Αυτό το αρχείο πρέπει να διαμορφωθεί όπως στο παρακάτω παράδειγμα: / Package documentation goes here; any documentation before the first period will be used as a summary. It is common practice to leave a blank line between the summary and the rest of the documentation; use this space to describe the package in as much detail as is appropriate. Inline tags such as {@code code here}, {@link reference.to.other.documentation}, and {@literal text here} can be used in this documentation. / package com.package.name; // Remainder of file must be empty ΕΠΛ133 Εργαστήριο. Υπεύθυνος Εργαστηρίων: Πύρρος Μπράτσκας 3

Field Documentation Παράδειγμα σχολίων πεδίων των κλάσεων: / Fields can be documented as well. As with other javadocs, the documentation before the first period is used as a summary, and is usually separated from the rest of the documentation by a blank line. Documentation for fields can use inline tags, such as: {@code code here} {@literal text here} {@link other.docs.here} Field documentation can also make use of the following tags: @since 2.1.0 @see some.other.class.documentation @deprecated Describe why this field is outdated / public static final String CONSTANT_STRING = "foo"; Linking to Other Javadocs Η σύνδεση με άλλα σχόλια Javadoc γίνεται με την ετικέτα @link : / You can link to the javadoc of an already imported class using {@link ClassName}. You can also use the fully-qualified name, if the class is not already imported: {@link some.other.classname} You can link to members (fields or methods) of a class like so: {@link ClassName#someMethod()} {@link ClassName#someMethodWithParameters(int, String)} {@link ClassName#someField} {@link #somemethodinthisclass()} - used to link to members in the current class You can add a label to a linked javadoc like so: {@link ClassName#someMethod() link text} / ΕΠΛ133 Εργαστήριο. Υπεύθυνος Εργαστηρίων: Πύρρος Μπράτσκας 4

Ασκήσεις 1. Επιλέξτε ένα πρόγραμμα από τα προηγούμενα εργαστήρια, προσθέστε σχόλια σε αυτό και δημιουργήστε τα html αρχεία. 2. Σχεδιάστε μια κλάση, QuadraticEquation, για μια εξίσωση δευτέρου βαθμού: ax 2 + bx + c = 0. Προσθέστε τις απαραίτητες μεθόδους που βρίσκουν τις ρίζες τις εξίσωσης. Στην περίπτωση που δεν υπάρχουν να εκτυπωθεί κατάλληλο μήνυμα. 3. Σχεδιάστε μια κλάση, LinearEquation, για ένα σύστημα γραμμικών εξισώσεων 2 x 2: ax + by = e cx + dy = f Οι λύσεις τις εξίσωσης είναι: ΕΠΛ133 Εργαστήριο. Υπεύθυνος Εργαστηρίων: Πύρρος Μπράτσκας 5