1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz
2 Akkor írunk ilyet, ha az osztályt olyan alakban akarjuk kezelni, mintha ő egy tömb lenne. class LancoltLista { public String this[int sorszam] { get {... a láncolt listában az „sorszam”-adik elem megkeresése return megtalalt_elem; } set{ … a láncolt lista „sorszam”-adik elemének javítása, vagy új elem felvétele a láncolt listába … (value) } class LancoltLista { public String this[int sorszam] { get {... a láncolt listában az „sorszam”-adik elem megkeresése return megtalalt_elem; } set{ … a láncolt lista „sorszam”-adik elemének javítása, vagy új elem felvétele a láncolt listába … (value) }
3 Ezt úgy érhetjük el, hogy - írunk egy ‘this’ nevű property-t az osztályhoz - megadhatjuk, hogy milyen típusú értékkel akarjuk indexelni (előző példában int) - ennek az index-nek adunk egy nevet (‘sorszam’) LancoltLista lista = new LancoltLista(); lista[0] = ”hello”; LancoltLista lista = new LancoltLista(); lista[0] = ”hello”; String s = lista[0] as String THIS->SET hívása, SORSZAM=0, VALUE=„hello” THIS->GET hívása, SORSZAM=0
4 Ilyen indexelője van : class String { public char this[int n] { get { a string n. karakterének visszaadása... } } class String { public char this[int n] { get { a string n. karakterének visszaadása... } } class ArrayList { public Object this[int n] { get { return „a lista n. értéke” } set { „a lista n. eleme” = value ; } } class ArrayList { public Object this[int n] { get { return „a lista n. értéke” } set { „a lista n. eleme” = value ; } }
5 Mátrix-szerű indexelőt is írhatunk: class HarmszogMatrix { public Object this[int sor, int oszlop] { get {... } set{... } class HarmszogMatrix { public Object this[int sor, int oszlop] { get {... } set{... }