Diskuze: Jak přistupovat k objektu z jiné třídy
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


public static void main(String[] args) {
Gui okno = new Gui();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setVisible(true);
okno.setSize(300,300);
okno.setLocationRelativeTo(null);
Kostka k1 = new Kostka(new char[]{'K','U','N','D','T','O'});
Tady si vytvořím kostku
public class Gui extends JFrame {
private JButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11,
b12, b13, b14, b15, b16;
public Gui()
{
super("MixIt");
GridBagLayout layout = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets (10,10,10,10);
Container con = getContentPane();
con.setLayout(layout);
con.setBackground(new Color(210,244,255));
b1 = new JButton(k1.pismeno);
a chtěl bych do tlacitka b1 vložit popis, který padnul na kostce, která je ale v jiné třídě...
Přidáš si konstruktor k tomu Gui, aby ti bral jako parametr i kostku.
public class Gui extends JFrame {
private JButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11,
b12, b13, b14, b15, b16;
private Kostka kostka;
public Gui(Kostka kostka)
{
super("MixIt");
GridBagLayout layout = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
this.kostka = kostka;
gbc.insets = new Insets (10,10,10,10);
Container con = getContentPane();
con.setLayout(layout);
con.setBackground(new Color(210,244,255));
b1 = new JButton(kostka.pismeno);
Pak jí jen předáš:
public static void main(String[] args) {
Kostka k1 = new Kostka(new char[]{'K','U','N','D','T','O'});
Gui okno = new Gui(k1);
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setVisible(true);
okno.setSize(300,300);
okno.setLocationRelativeTo(null);
Btw, tohle je totální prasokód:
private JButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11,
b12, b13, b14, b15, b16;
Uprav si to na pole. Jestli neumíš pole + cykly, tak radši na práci s objekty na pár dní zapomeň a douč se základy
1-Deklarovat metodu, která vrací aktuálně hozenou hodnotu
2-Deklarovat hodnotu veřejnou
3-Využití přátelských tříd či deklarovat celou třídu jako
přátelskou. (nevím jestli Java podporuje)
Jinak ještě bys měl ukázat kód třídy Kostka
1 jsem zkoušel udělal jsem si metodu getLetter() která vrací aktuální písmenko hozené na kostce, ale stejně jí nemůžu použít v jiné třídě...
package mixit;
import java.util.Random;
public class Kostka {
public char pismeno;
char[] poleznaku;
public Kostka (char[] poleznaku)
{
this.poleznaku = poleznaku;
pismeno = (poleznaku[new Random().nextInt(poleznaku.length)]);
}
public char getLetter()
{
return pismeno;
}
jinak dík za všechny rady 
hm, né že bych se v tom kódu nějak zorientoval, ale co jsem pochopil, tak by na to měly stačit (samozřejmě public jak jinak) gettery..
A jinak možností je víc..
kostku můžeš teoreticky udělat jako vnitřní třídu, private , pokud ji budeš používat jen tam,
případně nějakej kontejner, ovladač, kterej uděláš jako singleton (jedináčka, viz návrhový vzory) - ten zajistí že vždycky když ho zavoláš, tak dostaneš jednu a tu samou instanci (instaceof)..
Ale jak bylo řečeno výše, p4koo - pokud neumíš základy, je blbost chtít umět něco víc ..
EDIT : jó, už to trochu pobírám 
No, tak přetíženej konstruktor na okno, a dej mu kostku parametrem, kterou si
ulož do pomocný proměnný v okně ..
Btw, tvoji třídu bych si představoval spíše jako něco takového 
public class Kostka {
private char[] poleZnaku;
public Kostka (char[] poleznaku)
{
this.poleZnaku = poleznaku;
}
public char getLetter()
{
return poleZnaku[new Random().nextInt(poleznaku.length)];
}
Netvoř na něco getter, když už je to public. Navíc by jsi pokaždé
vracel to samé písmeno, takže takhle bych si to spíše představoval, když
už by to měla být kostka 
Zobrazeno 8 zpráv z 8.