Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 04.12.08 Prihlásený: 16.12.10 Príspevky: 59 Témy: 10 | 10 |
zdravim...mam dve triedy Elevator a Rectangle...v triede rectangle mam kopu metod napr hide, show, getX, moveRight atd.
chcem sa spytat ako naj spravit aby som tieto metody mohol pouzivat aj v class Elevator??...konkretne pouzivam nastroj BlueJ ( som zaciatocnik a mame to v skole )
takto to vyzera v Bluej - http://i37.tinypic.com/30bitqe.png
zdrojak Rectangle
Kód: class Rectangle {
protected int width; protected int height; protected int x; protected int y; protected Color color; protected boolean visible; protected int step; public Rectangle() { this(15,10,10,10,Color.RED,true); }
public Rectangle(int x, int y, int width, int height, Color color, boolean visible) { this.width = width; this.height = height; this.x = x; this.y = y; this.color = color; this.visible = visible;
if (visible) { show(); } }
public void show() { visible = true; Canvas.setColor(color); draw(); }
public void hide() { visible = true; Canvas.setColor(Canvas.getBackgroundColor()); draw(); }
public void draw() { for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Canvas.drawPixel(x + i, y + j); } } }
void moveRight() { hide(); x +=1; show(); }
void moveLeft() { hide(); x -= 1; show(); }
void moveUp() { hide(); y -= 1; show(); }
void moveDown() { hide(); y += 1; show(); }
int getWidth() { return width; }
void setWidth(int width) { hide(); this.width = width; show(); } int getHeight() { return height; }
void setHeight(int height) { hide(); this.height = height; show(); }
int getX() { return x; }
void setX(int x) { hide(); this.x = x; show(); }
int getY() { return y; }
void setY(int y) { hide(); this.y = y; show(); }
Color getColor() { return color; }
void setColor(Color color) { hide(); this.color = color; show(); } }
kod Elevator Kód: public class Elevator { private int width; private int height; private int x; private int y; private Color color; private int actualFloor; private int floors; private boolean visible;
/** * Constructor for objects of class Elevator */ public Elevator(){ this(1,1,7,5,5,0,true); }
public Elevator(int x, int y, int width, int height,int floors,int actualFloor, boolean visible) { this.width = width; this.height = height; this.x = x; this.y = y; this.floors = floors; this.actualFloor = 0; this.visible = visible; Canvas.setColor(Color.RED);
if (visible) { show(); }
} }
|
|
Registrovaný: 30.05.07 Prihlásený: 29.03.14 Príspevky: 641 Témy: 46 | 46 |
Staci aby metoda bola public a da sa pouzit aj z ineho objektu. Ale potom samozrejme ked pouzijes niekde v Elevatore metodu z Rectanglu, napr rectangle.getX tak to vrati to x co je v Rectangle, nie co je v Elevatore - toto neviem ci ti je jasne.
Treba sa na to pozerat tak ze trieda je nejaka vec, atributy su vlastnosti tej veci (napr Rectangle tam ma x,y, farbu, velkost...) a metody su schopnosti tej veci - napr setColor - vec ma schopnost zmenit farbu...
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 | 22 Bydlisko: Zilinska Un... |
Skus rozmyslat troska inac, jednoducho, trieda je neaky typ premennej, ktorej vytvoris obiekt a metodami nastavis dany obiekt. Takze vytvoris dva obiekty typu
Kód: public Rectangle _rectangle;
a typu Kód: public Elevator _elevator;
Napr. v 1. triede by si mal mat metody krtore ti napr. navracaju polohu takto: Kód: _rectangle.getX(); _rectangle.getY(); _rectangle.getZ();
V druhej triede zas budes mat public metody, ktore ocakavaju neaku hlavnu polohu napr. Kód: _elevator.setX(float) .atd......
a mozes spravit toto. Kód: _elevator.setX(_rectangle.getX()); _elevator.setY(_rectangle.getY()); _elevator.setZ(_rectangle.getZ());
Co tym chcem naznacit? Ze obiekt ti v podstate nieco tvori. Jeden objekt dokaze odovzdat parameter dalsiemu a naopak. Cize chcem tym povedat ze jednotlive triedy by medzi sebou nemali komunikovat, ale komunikuju spolu iba objekty. Alebo sa pouziva ze neaky obiekt nastavi, nacit atd... nico pre inu triedu a ta to odavzda prostrednictvom obiektu dalsej a tak. Ale nie ze neaku metodu z jednej triedy pouzijes v druhej triede, to ee.
Na komunikaciu a predavanie parametrov sa tiez dobre vyuziva dedicnost a podobne veci . V jave sa aj casto vyuzivaju staticke metody, viac ako v c++, staticke metody sa daju pekne pouzit na pristup roznych obiektov na zakazdym to iste pametove miesto, bez novej alokacie, je to vlastne vyuzitie ukazovatelov, aspo myslim ze to tak pracuje
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 1 | 424 | 02.03.2015 11:04 walther | | v Pamäte | 3 | 668 | 16.12.2010 20:09 majky358 | | v Assembler, C, C++, Pascal, Java | 1 | 302 | 10.03.2016 16:06 XOLOO | | v Ostatné | 1 | 304 | 27.11.2015 16:17 chrono | | v Assembler, C, C++, Pascal, Java | 1 | 482 | 27.11.2013 8:19 BX | | v Assembler, C, C++, Pascal, Java | 2 | 597 | 27.10.2010 9:58 Mony | | v Assembler, C, C++, Pascal, Java | 13 | 476 | 11.01.2014 20:42 focko | | v Assembler, C, C++, Pascal, Java | 3 | 475 | 26.10.2017 20:40 BX | | v Ponuka práce | 1 | 1423 | 08.06.2009 21:41 tlacitko Enter | | v Assembler, C, C++, Pascal, Java | 3 | 388 | 11.10.2013 21:25 Unlink | | v Assembler, C, C++, Pascal, Java | 3 | 390 | 07.02.2014 8:55 m@rtyn | | v Assembler, C, C++, Pascal, Java | 4 | 417 | 06.01.2014 11:49 cantona9 | | v Assembler, C, C++, Pascal, Java | 2 | 488 | 28.04.2010 20:30 dudomat | | v Assembler, C, C++, Pascal, Java | 2 | 1022 | 25.10.2009 12:30 hlodavec | | v Assembler, C, C++, Pascal, Java | 1 | 374 | 12.04.2010 15:06 Forty- | | v Assembler, C, C++, Pascal, Java | 8 | 612 | 29.03.2015 9:37 Lessik |
|