Diskuze: Změna objektu bez příkazu, jakto?
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
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.


Ten program je předloha, ten jsem nevytvořil... V popisovaném řádku
"posledni = posledni.dalsi = new Uzel(vkladany);" mám nejasnosti... Když
seznam vypisuji tak ho přeci vypisuji podle objektu "prvni", ale v té
metodě(pokud není splněna podmínka) se podle příkazu přepisuje objekt
poslední, ale když jsem jel postupně debug tak se tam i zároveň přepsal
objekt "první", jakto? Je to správně, ale nevím proč to tam proběhlo...
Zkuste si sám spustit program a pak postupně debug 
Já si ho spustil už předtím a asi už vím co nechápeš.
prvni = posledni = new Uzel(vkladany);
ti vytvoří nový uzel na který ukazují "prvni" a "posledni"
posledni.dalsi = new Uzel(vkladany);
to ti vytvoří nový uzel, na který ukazuje "posledni.dalsi" a protože "posledni" ukazuje na stejný objekt jako "prvni" tak na tento nový uzel ukazuje i "prvni.dalsi"
posledni = posledni.dalsi;
"posledni" ukazuje na dalsi objekt
a toto se opakuje dál jen teď na "posledni" ukazuje zároveň "prvni.dalsi"
pak na něj bude ukazovat "prvni.dalsi.dalsi" atd.
Ale tímto způsobem nepřepíšeš "prvni" protože ten ukazuje pořád na
stejný objekt jen měníš co obsahuje tento objekt.
Ano, to je přesně to, co nechápu. Už se do toho pomalu dostavam, ale nechápu toto "protože "posledni" ukazuje na stejný objekt jako "prvni" tak na tento nový uzel ukazuje i "prvni.dalsi"", kde je to definované,že ukazují na stejný objekt a jak si to lze představit? Omlouvám se jsem začátečník, tak děkuji za trpělivost.
No v paměti jsou objekty na nějaké adrese, protože je Java dynamický jazyk tak když zavoláš
new Uzel(vkladany);
tak ti vrátí adresu tohoto nového objektu
prvni + posledni = new Uzel(vkladany);
tady tu adresu dostanou "prvni" a "posledni", teď ukazují na stejnou adresu - tedy na stejný objekt - nově vytvořený uzel
můžeš si to ozkoušet třeba tímto :
System.out.println(prvni + " " + posledni);
pokud nemá třída metodu toString() tak vypisuje co je za třídu a pak adresu
A prosím používej "Odpovědět".
Java je:
Ne, adresa je ukazatel do paměti, reference je sémantický odkaz.
Zobrazeno 11 zpráv z 11.