Překrytí objektů, jakto? – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Překrytí objektů, jakto? – Java – Fórum – Programujte.comPřekrytí objektů, jakto? – Java – Fórum – Programujte.com

 

Tomaash0
Duch
18. 8. 2014   #1
-
0
-

Dobrý den, mám problém s tímto programem :/ Je to předepsaný program, který správně funguje, ale nevím si rady s významem s metodou vloz(), proč tento řádek "posledni = posledni.dalsi = new Uzel(vkladany);" přepíše i objekt "prvni",přesto že se tam vůbec o "prvni" nejedná, a zrovna i tu správnou větev "dalsi" ? Prosím o vysvětlení... 

Pro lepší pochopení programu je tady zadání: 

"Vytvořte třídu SpojovySeznam, která umí uchovávat prvky typu Object. Připravte metody void vloz(Object obj), Object vyjmiPrvniho() a void vypisSeznam()."

// univerzalni spojovy seznam

class Uzel {
  Object prvek;
  Uzel dalsi;

  Uzel(Object o) {
    prvek = o;
    dalsi = null;
  }

  Uzel(Object o, Uzel dalsiUzel) {
    prvek = o;
    dalsi = dalsiUzel;
  }

  Object getPrvek() { 
      return prvek; 
  }

  Uzel getDalsi() { 
      return dalsi; 
  }
}

class SpojovySeznam {
  private Uzel prvni, posledni;
  int pocet;

  SpojovySeznam() {
      prvni = posledni = null;  
      pocet = 0; 
  }

  public boolean jePrazdny() {
    return (prvni == null) ? true : false;
  }

  // vklada na konec
  public void vloz(Object vkladany) {
    if (jePrazdny() == true)
      prvni = posledni = new Uzel(vkladany);
    else
      posledni = posledni.dalsi = new Uzel(vkladany);
    pocet++;
  }

  public void vypisSeznam() {
    Uzel akt = prvni;
    while (akt != null) {
      System.out.println(akt.prvek.toString());
      akt = akt.dalsi;
    }
    System.out.println("Pocet prvku: " + pocet);
  }

  public Object vyjmiPrvniho() {
    Object o;
    if (jePrazdny() == true)
      return null;

    pocet--;
    o = prvni.prvek;
    if (prvni != posledni)
      prvni = prvni.dalsi;
    else
      prvni = posledni = null;

    return o;
  }

  public int getPocet() { return pocet; }
}

public class SpojovySeznamTest {
  public static void main(String[] args) {
    SpojovySeznam s = new SpojovySeznam();
    Integer i = new Integer(1);
    Double d = new Double(3.14);
    String a = "ahoj";
    s.vloz(i);
    s.vloz(d);
    s.vloz(a);
    s.vypisSeznam();
    s.vyjmiPrvniho();
    s.vypisSeznam();
  }
}

Nahlásit jako SPAM
IP: 213.226.245.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Jakto že to nefunguje?? — založil Jakub Sosnovec

Překrytí X přetížení — založil Montezo

Prekryti globalniho stylu — založil Honza Sova

Překryti zvuku zvukem — založil SmitH

Pozadi a (ne)prekryti divem — založil Mucha

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý