23
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; /** 1

Eclipse - Klase i Paketi

  • Upload
    ciko82

  • View
    60

  • Download
    3

Embed Size (px)

DESCRIPTION

Eclipse - Klase i Paketi, osnovno podesavanje za eklipse uz objasnjenje klasa i paketa...

Citation preview

Page 1: Eclipse - Klase i Paketi

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

*/

public Point(double x, double y)

{

this.x = x;

1

Page 2: Eclipse - Klase i Paketi

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()

{

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

}

}

2

Page 3: Eclipse - Klase i Paketi

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);

radius = r;

}

/**

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

* and radius 1.

*/

3

Page 4: Eclipse - Klase i Paketi

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 + "]";

}

}

CircleTester

package geotester;

/**

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

* This version contains a main method.

*/

4

Page 5: Eclipse - Klase i Paketi

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)

{

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”:

5

Page 6: Eclipse - Klase i Paketi

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

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"

6

Page 7: Eclipse - Klase i Paketi

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:

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.

7

Page 8: Eclipse - Klase i Paketi

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.

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":

8

Page 9: Eclipse - Klase i Paketi

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

a prozor Editor pokazuje šablon klase:

9

Page 10: Eclipse - Klase i Paketi

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

10

Page 11: Eclipse - Klase i Paketi

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:

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

11

Page 12: Eclipse - Klase i Paketi

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

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:

12

Page 13: Eclipse - Klase i Paketi

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

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

13

Page 14: Eclipse - Klase i Paketi

Sada dvokliknite mišem na geometry da biste dobili

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

14

Page 15: Eclipse - Klase i Paketi

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

15

Page 16: Eclipse - Klase i Paketi

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

16

Page 17: Eclipse - Klase i Paketi

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.

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).

17

Page 18: Eclipse - Klase i Paketi

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

Na ekranu se pojavljuje prozor

Selektujte "Java Build Path" sa liste:

18

Page 19: Eclipse - Klase i Paketi

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;

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

19

Page 20: Eclipse - Klase i Paketi

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.

Pripremio Dragan Marković

20