Předmět Autor Datum
Pole se neposílá podobně, jako např. proměnná, ale posílá se jako reference. Důvodem je, že pole je…
Flash_Gordon 24.04.2013 07:01
Flash_Gordon
Specifikuj, co myslíš tím "poslat" pole...
MaSo 24.04.2013 08:37
MaSo
Děkuji za odpovědi. Poslat pole, tím myslím: Mám 2 class soubory. Soubor A zobrazuje JFrame okno…
MašinkaTomáš 24.04.2013 09:58
MašinkaTomáš
Normálně si předáš referenci.
Wikan 24.04.2013 10:05
Wikan
To slovo mi něco říká, nicméně, nevím co znamená.
MašinkaTomáš 24.04.2013 10:09
MašinkaTomáš
Příklad: Ve třídě, která to načítá ze souboru, budeš mít metodu: public Shape[] getShapes() { retu…
Wikan 24.04.2013 10:14
Wikan
Raději vracej kopii pole. Aby ostaní třídy nemohli měnit původní pole. Použij System.arraycopy().
MaSo 24.04.2013 12:16
MaSo
To jde o způsob použití. Pokud se to má v jedné třídě načíst a ve druhé používat, tak je zbytečné dě…
Wikan 24.04.2013 12:23
Wikan
Děkuji, vím jak je to myšlené, bohužel teď nastal problém v tom, že když chci (nevím jestli to správ…
MašinkaTomáš 24.04.2013 13:21
MašinkaTomáš
Nemohl bys to popsat trochu lépe? Co znamená, že je nemá přístupné?
Wikan 24.04.2013 13:46
Wikan
Omlouvám se, nemá přístupné, znamená, že vstupem do té metody(NÁZEV, POLE) jsou hodnoty, které se z…
MašinkaTomáš 24.04.2013 13:54
MašinkaTomáš
Tak je nedávej do konstruktoru. Jaký je má smysl dávat do konstruktoru, když jejich se jejich hodnot…
Wikan 24.04.2013 14:11
Wikan
Protože zase v předchozím kroku vytvářim objekty, to je složitý, vidím že to nejspiš nepůjde tak leh…
MašinkaTomáš 24.04.2013 14:36
MašinkaTomáš
Nejspíš to máš celé špatně navržené. Ale to se nedozvíme, protože vlastně vůbec nevíme, o co se snaž…
Wikan 24.04.2013 14:38
Wikan
Dej sem cely kod. Jinak se nehnem...
MaSo 24.04.2013 14:39
MaSo
Zalezi, co pise. Jestli si pise jenom nejakou hovadinu pro sebe, tak je to asi jedno. Kdyz ale navrh…
MaSo 24.04.2013 14:41
MaSo
K tomu, abych dělal nějaký veřejný interface mám rozhodně daleko, je to práce do školy. Kódy jsem p… poslední
MašinkaTomáš 24.04.2013 14:51
MašinkaTomáš

Pole se neposílá podobně, jako např. proměnná, ale posílá se jako reference.
Důvodem je, že pole je navržené pro větší objemy dat a jeho kopie by byly neefektivní.

Teda nevím jak přesně v Javě, ale v C++ nebo C# to takhle je.
Samozřejmě ti nic nebrání udělat si i tu kopii pole (ale to záleží na vzájemné životnosti obou objektů).

http://mathbits.com/MathBits/Java/arrays/ArrayMeth od.htm

Děkuji, vím jak je to myšlené, bohužel teď nastal problém v tom, že když chci (nevím jestli to správně programátorsky nazvu a vysvětlím) vytvořit ,,objekt,,

static Kraj k = new Kraj(); - abych po té mohl volat Shape[] kraje = k.getShapes();

Tak static Kraj k = new Kraj(NAZEV, POLE); má vstupy nazev a pole, které class A nemá přístupné.

Zalezi, co pise. Jestli si pise jenom nejakou hovadinu pro sebe, tak je to asi jedno. Kdyz ale navrhuje nejaky verejny interface, tak je lepsi vracet vsude kopie objektu (poli, kolekci apod.), aby byla zajistena imutabilita. Samozrejme, ze to neni jenom o tomhle, ale je to dobry zacatek...

K tomu, abych dělal nějaký veřejný interface mám rozhodně daleko, je to práce do školy.

Kódy jsem přiložil do přílohy.

Vysvětlím oč mi jde:

Soubor HlavniOkno zobrazí gui(zatím jen s tlačítkem).

Soubor kraj a zobrazenimapy NAČTE hodnoty z txt souboru kraje_cr, podle kterých vykreslí polygony krajů v čr.

Naházel jsem ty polygony do pole, a to bych rád z přistupnil v HlavniOkno (jelikož s nima budu dále pracovat).

---------------------------------------------
Na internetu jsem našel kód co ukládá pole do souboru(to by asi bylo nejlehčí, ale pouze pole byte.

String fileName = "file.test";

BufferedOutputStream bs = null;

try {

    FileOutputStream fs = new FileOutputStream(new File(fileName));
    bs = new BufferedOutputStream(fs);
    bs.write(byte_array);
    bs.close();
    bs = null;

} catch (Exception e) {
    e.printStackTrace()
}

if (bs != null) try { bs.close(); } catch (Exception e) {}

Mělo by to fungovat tak, že když kliknu na tlačitko, tak se všechny vyplní barvou např, do zelena..

Pokud to budete někdo zkoušet zapínat, tak pozor, cesta k souboru pro kraje_cr je na mou plochu.

Zpět do poradny Odpovědět na původní otázku Nahoru