You are on page 1of 20

Tmbk a Java nyelvben

Darvay Zsolt
Java 2
Alapvet jellemzk
Azonos tpus elemekbl ll.
lland hosszsg. A hossz a
ltrehozst kveten nem vltoztathat.
A C++-hoz hasonlan az indexek zrtl
kezddnek.
A tmb egy referencia tpus, teht az
Object osztly leszrmazottja.
Java 3
Tmb tpus
Tmb tpust gy vezetnk be, hogy az
elemtpus utn megadjuk az index-zrjeleket.
A C++-al ellenttben a szgletes zrjelek kzt
nem adhat meg a mret.
A tmb mrett helyfoglalssal hatrozzuk meg
(a new opertorral, vagy az elemek
inicializlsval).
A tmb tpus nem rgzti le a mretet. Ugyanaz
a tpus klnbz mret tmbk megadsra
alkalmas.
Plda: String [] egy karakterlncokbl ll tmb.
Java 4
Helyfoglals
A deklarci csak a tmbt meghatroz
referencia szmra foglal memrit. Az elemek
szmra a new opertorral foglalhatunk le
memriaterlet, vagy inicializlnunk kell a
tmbt.
Ltrehozhat tbbdimenzis tmb is (tmbk
tmbje). Ha a new opertorral memriaterletet
akarunk foglalni az elemei szmra, akkor
legalbb az els index-kifejezs mrett meg
kell adni.
Java 5
Hivatkozs az elemekre
Index-kifejezssel (tpusa int).
Az int-nl alacsonyabb tpusok (byte,
short, char) int-re lesznek alaktva.
Az int-nl bvebb tpusok (pl. long)
esetn fordtsi hiba keletkezik.
Java 6
Plda
public class TombPelda {
public static void main(String [] args) {
int tomb[] = new int[3];
tomb[0] = 20;
tomb[1] = 30;
tomb[2] = 40;
for(int i : tomb)
System.out.println(i);
}
}
Java 7
Kimenet
20
30
40
Ha egy nem ltez indexre akarunk
hivatkozni, akkor
ArrayIndexOutOfBoundsException
kivtelt vlt ki a rendszer.
Java 8
Plda: kivtel
public class TombPelda {
public static void main(String [] args) {
int tomb[] = new int[3];
// ...
try { tomb[3] = 50; }
catch (ArrayIndexOutOfBoundsException e) {
System.err.println("Hiba: " + e);
} // ... az elz for ciklus
}
}
Java 9
Kimenet
Hiba: java.lang.ArrayIndexOutOfBoundsException: 3
20
30
40
A szgletes zrjel a vltoznv utn is lehet.
Ekkor csak az illet vltozra hivatkozik.
Plda:
String [] x, y[]; // x egydimenzis y kett
String [][] x, y; // x s y ktdimenzis
Java 10
Plda: tbbdimenzis
public class Tombok {
public static void main(String [] args) {
String [] x, y[];
x = new String[3];
x[0] = "Elso";
x[1] = "Masodik";
x[2] = "Harmadik";
for(String elem : x)
System.out.println(elem);
Java 11
Plda: tbbdimenzis
y = new String[2][3];
y[0][0] = "a";
y[0][1] = "b";
y[0][2] = "c";
y[1][0] = "d";
y[1][1] = "e";
y[1][2] = "f";
Java 12
Plda: tbbdimenzis
System.out.println(y.length); // 2
System.out.println(y[0].length); // 3
for(String[] belsotomb : y)
for(String s : belsotomb)
System.out.print(s + " ");
}
}
A tmb hossza a length mezvel hatrozhat
meg (tpusa: final int).
Java 13
Kimenet
Elso
Masodik
Harmadik
2
3
a b c d e f
Java 14
Plda: inicializls
public class TombInicializalas {
public static void main(String [] args) {
int [] x = {11, 22, 33};
System.out.println(x.length); // 3
char [] y = {'a', 'b', 'c', 'd'}; // nem String
System.out.println(y.length); // 4
String [] z = { "alma", "korte"};
System.out.println(z.length); // 2
Java 15
Plda: inicializls
int v = 2;
int [][] t = new int[v++][v]; // balrol jobbra
System.out.println(t.length); // 2
System.out.println(t[0].length); // 3
A new opertor esetn az index-kifejezsek
balrl jobbra rtkeldnek ki.
Tmbk tmbje esetn a bels tmbk mretei
klnbzhetnek (lsd tovbb).
Java 16
Plda: inicializls
int [][] w = {
{100, 200, 300, 400},
{101, 202},
{111, 222, 333}
};
System.out.println(w[0].length); // 4
System.out.println(w[1].length); // 2
System.out.println(w[2].length); // 3
}
}
Java 17
Plda: szrmaztats
class Alap {
void kiir() {
System.out.println("Alap");
}
}
class Szarm extends Alap {
void kiir() {
System.out.println("Szarm");
}
}
Java 18
Plda: szrmaztats
class Szarm2 extends Szarm {
void kiir() {
System.out.println("Szarm2");
}
}
public class TombSzarmaztatas {
public static void main(String [] args) {
// ...
Java 19
Plda: szrmaztats
Alap[] tomb = new Szarm[3];
try { tomb[0] = new Alap(); }
catch ( ArrayStoreException e)
{ System.err.println("Hiba: " + e); }
tomb[1] = new Szarm();
tomb[1].kiir();
tomb[2] = new Szarm2();
tomb[2].kiir();
}
}
Java 20
Kimenet
Hiba: java.lang.ArrayStoreException: Alap
Szarm
Szarm2
Ha a tmbt gy hoztuk ltre, hogy egy adott
osztly (itt Szarm) objektumait tartalmazhatja,
akkor csak az illet osztly objektumait s a
leszrmazottjainak az objektumait adhatjuk t
egy-egy tmbelemnek. Klnben
ArrayStoreException kivtel lesz kivltva.

You might also like