Top Banner
Uputstvo – paket u Eclipseu Uvod U prethodnom uputstvu nisu korišćeni paketi. Klase Point, Circle i CircleTester su bile u sastavu podrazumevanog (default) paketa. Međutim, u slučaju većih projekata sa mnogo klasa bolje je staviti klase u pakete tako da svaki paket sadrži skup povezanih klasa. Klase u standardnom Java SDK (Software Development Kit) takve kao String klasa ili Math klasa dizajnirane su na taj način (one su u paketu koji se zove java.lang). Ovo uputstvo pokazuje kako da prepravite prvo uputstvo da kreirate dva Java projekta i dva paketa. Prvi projekt, nazvan geoproject, sadrži paket pod nazivom geometry koji sadrži klase Point i Circle. Drugi projekt, nazvan geotesterproject, sadrži paket pod nazivom geotester koji sadrži klasu CircleTester. Napomena: Do sada koristili smo samo jedan projekt koji sadrži dva paketa a sada hoćemo da pokažemo kako klase iz različitih projekata mogu međusosbno da se referenciraju. Ovde ponovo dajemo sve tri klase iz prvog uputstva tako da možete da uštedite vreme kopiranjem i stavljanjem koda u Eclipse editor, sa jedno razlikom koja se ogleda u postojanju naredbe package na početku svake klase (označena crvenom bojom). Point package geometry; /** * A class representing immutable geometrical points (x,y) * in the plane. */ public class Point { private double x; private double y; /** * Construct a point from its coordinates. * @param x the x coordinate of the point * @param y the y coordinate of the point
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Eclipse Uputstvo

Uputstvo – paket u Eclipseu

Uvod

U prethodnom uputstvu nisu korišćeni paketi. Klase Point, Circle i CircleTester su bile u sastavu podrazumevanog (default) paketa. Međutim, u slučaju većih projekata sa mnogo klasa bolje je staviti klase u pakete tako da svaki paket sadrži skup povezanih klasa. Klase u standardnom Java SDK (Software Development Kit) takve kao String klasa ili Math klasa dizajnirane su na taj način (one su u paketu koji se zove java.lang). Ovo uputstvo pokazuje kako da prepravite prvo uputstvo da kreirate dva Java projekta i dva paketa.

Prvi projekt, nazvan geoproject, sadrži paket pod nazivom geometry koji sadrži klase Point i Circle.

Drugi projekt, nazvan geotesterproject, sadrži paket pod nazivom geotester koji sadrži klasu CircleTester.

Napomena: Do sada koristili smo samo jedan projekt koji sadrži dva paketa a sada hoćemo da pokažemo kako klase iz različitih projekata mogu međusosbno da se referenciraju.

Ovde ponovo dajemo sve tri klase iz prvog uputstva tako da možete da uštedite vreme kopiranjem i stavljanjem koda u Eclipse editor, sa jedno razlikom koja se ogleda u postojanju naredbe package na početku svake klase (označena crvenom bojom).

Point

package geometry;

/**

* A class representing immutable geometrical points (x,y)

* in the plane.

*/

public class Point

{

private double x;

private double y;

/**

* Construct a point from its coordinates.

* @param x the x coordinate of the point

* @param y the y coordinate of the point

Page 2: Eclipse Uputstvo

*/

public Point(double x, double y)

{

this.x = x;

this.y = y;

}

/**

* Construct the default point (0,0).

*/

public Point()

{

x = 0.0;

y = 0.0;

}

/**

* Return the x coordinate of this point.

* @return the x coordinate of this point

*/

public double getX()

{

return x;

}

/**

* Return the y coordinate of this point.

* @return the y coordinate of this point

*/

public double getY()

{

return y;

}

/**

* @return a string representation of a Point

*/

public String toString()

Page 3: Eclipse Uputstvo

{

return "Point[" + x + ", " + y + "]";

}

}

Circle

package geometry;

/**

* A class representing immutable geometrical circles.

* Each circle is described by its center (a Point object)

* and its radius (a double number).

*/

public class Circle

{

private Point center;

private double radius;

/**

* Construct circle with given center point and radius.

* @param p the center of the circle

* @param r the radius of the circle

*/

public Circle(Point p, double r)

{

center = p;

radius = r;

}

/**

* Construct circle with given center coordinates and radius.

* @param x the x coordinate of the circle center

* @param y the y coordinate of the circle center

* @param r the radius of the circle

*/

public Circle(double x, double y, double r)

{

center = new Point(x,y);

Page 4: Eclipse Uputstvo

radius = r;

}

/**

* Construct a default circle: a unit circle with center (0,0)

* and radius 1.

*/

public Circle()

{

center = new Point();

radius = 1;

}

/**

* Return radius of circle.

* @return radius of circle

*/

public double getRadius()

{

return radius;

}

/**

* Return center of circle.

* @return center of circle

*/

public Point getCenter()

{

return center;

}

/**

* @return a string representation of a Circle

*/

public String toString()

{

return "Circle[" + center + ", " + radius + "]";

}

Page 5: Eclipse Uputstvo

}

CircleTester

package geotester;

/**

* A short class to show how to test the Circle and Point classes.

* This version contains a main method.

*/

public class CircleTester

{

public CircleTester()

{

}

/**

* Test the Point and Circle classes.

*/

public void doTest()

{

Point center = new Point(3,4);

Circle c1 = new Circle();

Circle c2 = new Circle(center, 5);

Circle c3 = new Circle(3, 4, 5);

System.out.println("c1 = " + c1);

System.out.println("c2 = " + c2);

System.out.println("c3 = " + c3);

double radius = c2.getRadius();

double x = c2.getCenter().getX();

double y = c2.getCenter().getY();

System.out.println("Radius = " + radius);

System.out.println("Center x = " + x);

System.out.println("Center y = " + y);

}

public static void main(String[] args)

Page 6: Eclipse Uputstvo

{

CircleTester tester = new CircleTester();

tester.doTest();

}

}

Zatvaranje projekta

Podrazumevamo da ste upravo kompletirali rad prema prvom uputstvu. Nije nam više potreban projekt nazvan first iz prvog uputstva. Umesto da ga nepovratno obrišemo, samo ćemo ga zatvoriti.

Da biste to uradili selektujte projekt first u "Package Explorer" (klikom miša na njega) a zatim izaberite stavku "Close Project" u menijue „Project”:

Uočite da prozor "Package Explorer" sada ima izgled

Koji pokazuje da projekt nije na raspolaganju. Ovime projekt nije izbrisan. Ako je potrebno da projekt ponovo otvorite samo ga selektujte i izaberite stavku "Open Project" u meniju "Project".

Kreiranje projekata

Sada kreirajte projekt pod nazivom geoproject. Ovo se radi kao u prvom uputstvu: Selektujte meni "File", zatim "New" i na kraju "Project...". U okviru za dijalog koji se pojavljuje na ekranu selektujte "Java Project", kliknite mišem na dugme "Next" i upišite naziv geoproject u polje "Project name:"a zatim selektujte "Finish".

Na sličan način kreirajte projekt geotesterproject i prozor "Package Explorera" sada ima izgled

Page 7: Eclipse Uputstvo

Napomena: Projekt predstavlja putanju klase tako da su ovde sada dve putanje klase.

Kreiranje paketa

Sada treba da kreirate paket geometry u projektu geoproject. Da biste to uradili prvo treba da selektujete projekt geoproject u "Package Exploreru".

Sada selektujte meni "File", zatim "New" i na kraju "Package":

Na ekranu se pojavljuje okvir za dijalog "New Java Package"

U polju "Source Folder:" pojavljuje se naziv (to je upravo naziv projekta) i sada možete da u polje "Name:" upišete naziv paketa geometry:

Page 8: Eclipse Uputstvo

Sada kliknite mišem na dugme "Finish" i prozor "Package Explorer" će imati sledeći oblik:

Ponovite prethodnu proceduru da biste kreirali paket geotester u projektu geotesterproject : selektujte geotesterproject, zatim "New" i na kraju "Package", upišite naziv geotester u polje "Name:" i kliknite na dugme "Finish".

Prozor "Package Explorer" sada ima sledeći izgled.

Uočite da se JRE System Library (Java Runtime Environment) automatski dodaje svakom projektu. Ovo prosto znači da su standardni Java paketi i klase takvi kao što su klasa Math i klasa String na raspolaganju svakoj klasi u projektu.

Page 9: Eclipse Uputstvo

Dodavanje klasa paketu geometry

Struktura projekta i paketa je sada kompletna tako da možete da dodate klase Point i Circle paketu geometry. Ovo je vrlo slično dodavanju ovih klasa default paketu u prvom uputstvu.

Dodavanje klase Point

Selektujte paket geometry u "Package Exploreru". Sada selektujte meni "File", zatim "New" i na kraju "Class" da biste na ekranu dobili okvir za dijalog "New Java Class":

Uočite da su polja "Source Folder:" i "Package:" automatski postavljena (naziv izvornog foldera je upravo naziv projekta) tako da treba samo da upišete Point u polje "Name: " i kliknete mišem na dugme "Finish".

Prozor "Package Explorer" sada izgleda

Page 10: Eclipse Uputstvo

a prozor Editor pokazuje šablon klase:

Uočite da je naredba package automatski stavljena u izvorni fajl klase Point. Izuzev komentara, to mora biti prva naredba u fajlu. Umesto upisivanja koda klase Point jednostavnije je da je iskopirate iz ovog uputstva i stavite u prozor Editor Eclipsea. Snimite fajl (izaberite "Save" u meniju "File") a klasa se automatski kompajlira. Editorski prozor sada treba da ima izgled

Page 11: Eclipse Uputstvo

Dodavanje klase Circle

Ponovite prethodnu proceduru da biste kreirali klasu Circle. Kada to završite prozor "Package Explorer" treba da ima izgled:

a prozor Editor:

Page 12: Eclipse Uputstvo

Testiranje klasa Point i Circle sa Scrapbook

Kao što smo radili u prvom uputstvu, tako i ovde možemo da testiramo klase Point i Circle pomoću scrapbook stranice.

U prvom uputstvu pokazano je kako se kreira scrapbook stranica. Ovde se daje brži način. Selektujte geometry u "Package Exploreru", selektujte meni "File", selektujte "New", selektujte "File", upišite test.jpage u polje "File name:" i kliknite mišem na dugme "Finish". Fajl test.jpage je sada prikazan u prozoru Editor a prozor "Package Explorer" ima izgled

Page 13: Eclipse Uputstvo

Upišite neke naredbe u scrapbook stranicu tako da izgleda kao na slici:

Selektujte sav tekst. Pokušajte da izvršite tekst (ovo je razmatrano u prvom uputstvu): Možete ili da kliknete mišem na dugme za izvršavanje na paleti alatki (zeleni kružić koji sadrži

trougao sa slovom J ), ili da uradite desni klik mišem na scrapbook stranici i selektujete execute, i treba da vidite neke greške:

Klase Point i Circle nisu prepoznate. One su sada u paketu i treba da ih uvezete u scrapbook (to niste morali da radite u prvom uputstvu koje je koristilo default paket).

Prvo obrišite tekst greške u scrapbooku da biste ga vratili u prvobitno stanje. Da biste uvezli klase u scrapbook uradite desni klik mišem u scrapbook prozoru i selektujte "Set Imports ..." da biste na ekranu dobili okvir za dijalog

Page 14: Eclipse Uputstvo

Kliknite mišem na dugme "Add Packages", pomerite saržaj sve dok na spisku (listi) ne nađete geometry:

Page 15: Eclipse Uputstvo

Sada dvokliknite mišem na geometry da biste dobili

Page 16: Eclipse Uputstvo

Kliknite mišem na dugme "OK" i paket geometry je dodat scrapbookovoj putanji klasa.

Vratite se sada u scrapbook, selektujte sav tekst i izvršite ga da biste dobili rezultate u konzolnom prozoru:

Kreiranje klase CircleTester

Sada treba da dodate klasu CircleTester paketu geotester u projektu geotesterproject. To se radi na isti način kao što je rađeno za klase Point i Circle.

Selektujte paket geotester u "Package Exploreru":

Selektujte meni "New", zatim "Class" i u polje "Name:" upišite CircleTester. Pošto ova klasa sadrži metod main možete da kliknete mišem na polje za potvrdu za metod main:

a zatim kliknete mišem na dugme "Finish". Prozor "Package Explorer" sada izgleda

Page 17: Eclipse Uputstvo

a prozor Editor prikazuje

Uočite da je obezbeđen kostur (stub) za metod main.

Napomena: Umesto isecanja i stavljanja teksta za ovu klasu možete upisati tekst klase

CircleTester da biste videli kako editor radi a zatim ga snimite (kliknite na ikonu na paleti alatki).

Zašto to ne radi?

Posle snimanja fajla uočićete u prozoru editora

Page 18: Eclipse Uputstvo

da postoje četiri markera greške na levoj margini. Zadržite pokazivač miša nad ovim markerima i videćete detaljne informacije koje se odnose na njih:

Takođe, kliknite na karticu "Problems" u prozoru ispod editora:

Izgleda da klase Point i Circle nisu prepoznate.

Problem je u tome što klasa CircleCalculator referencira klase Point i Circle koje su u drugom projektu.

Do sada samo je geotesterproject na našoj putanji klase i treba da joj dodate geoproject putanju klase kako bi klase Point i Circle mogle da budu pronađene. Svaki projekt predstavlja putanju klase.

Page 19: Eclipse Uputstvo

Drugim rečima, treba da "povežete" dva projekta zajedno. Da biste to uradili treba da prvo selektujete geotesterproject u prozoru "Package Explorer"(kliknite mišem na njega).

Sada selektujte meni "Project" a zatim "Properties":

Na ekranu se pojavljuje prozor

Selektujte "Java Build Path" sa liste:

Page 20: Eclipse Uputstvo

Sada selektujte karticu "Projects" i potvrdite izbor geoproject stavljanjem tzv. štrikle u polje pored njega:

Kliknite mišem na dugme "OK" i putanja klase sada sadrži oba projekta. Vratite se u editorski prozor i dodajte naredbe import posle naredbe package:

import geometry.Point;

import geometry.Circle;

Page 21: Eclipse Uputstvo

Snimite fajl i sve greške u klasi CircleTester nestaju:

Izvršavanje aplikacije CircleTester

Sada možete da izvršite aplikaciju CircleTester: prvo selektujte CircleTester.java u prozoru "Package Explorer", zatim selektujte meni "Run", zatim "Run As" i na kraju selektujte "Java Application".

Rezultati izvršavanja se vide u konzolnom prozoru

U sledećem uputstvu biće pokazano kako da eksterno izvršavate CircleTester iz JAR fajla.

Page 22: Eclipse Uputstvo

Pripremio Dragan Marković