Új hozzászólás Aktív témák

  • thon73

    tag

    válasz domel #3875 üzenetére

    egyik = textResult; egyik és textResult is ugyanarra a stringre mutat (legyen stringA)
    egyik = Integer.toString(Integer.parseInt(egyik)); textResult változatlan, de egyik már a toString által létrehozott új stringre mutat. (Ami tartalmazhat azonos szöveget stringA-val) Ez legyen tehát stringB.

    "egyik == textResult" az ugyanaz, mint stringA == stringB, vagyis soha nem lesz igaz. textResult.equals(egyik) megoldás segíthet, de miért nem számolsz inkább integerekkel az átalakítás után?

    A masik=egyik; utasítás viszont a fenti ellentéte, hiszen ettől kezdve mind a kettő ugyanarra a stringA-ra mutat, tehát értékük egyenlő.

    Java-ban ezt egy picit nehéz megérteni, mert el van rejtve. A C pl. sokkal jobban rákényszeríti az embert a címaritmetika elsajátítására.
    A String alapvetően egy Objektum, amely valahol egy komplex adathalmaz a memóriában.
    Pl. String string = "Én egy adathalmaz vagyok"; utasításban lesz a memóriában egy ilyen mondat.
    Ezzel szemben a "változó", amivel azonosítjuk a stringet, valójában egy mutató, ami erre az adathalmazra mutat. String esetén az adathalmaz final, vagyis nem változtatható meg, de a string nevű mutató természetesen mutathat más halmazra, ha új értéket kap.
    Te azt hasonlítod össze, hogy a két mutató ugyanoda mutat-e, ahelyett, hogy a két mutató által mutatott adatokat hasonlítanád össze.

Új hozzászólás Aktív témák