Egy osztály, amely egy alkalmazottat modellez, akinek neve
és fizetése van, és egyetlen művelete a fizetésemelés.
public class Alkalmazott { String nev; int fizetes; void fizetestEmel(int novekmeny) { fizetes += novekmeny; } }A teljes program: Alkalmazott.java |
Egy kódtöredék, amely definiál egy Alkalmazott típusú lokális változót, létrehoz egy új példányt, értékadással nevet és fizetést ad neki, s végül fizetésemeléssel jutalmazza.
Alkalmazott a; a = new Alkalmazott(); a.nev = "Kovács János"; a.fizetes = 50000; a.fizetestEmel(6300);A teljes program: Pelda1.java |
Három egész típusú változó deklarációja.
int fizetes, potlekok, levonasok;A teljes program: Pelda2.java |
Deklaráció, amely megadja az első és a harmadik változó kezdőértékét.
int fizetes = 30000, potlekok, levonasok = fizetes/4;A teljes program: Pelda3.java |
Konstans deklarációja.
final double ADOKULCS = 25;A teljes program: Pelda3.java |
Az aktuális példány, illetve más példány változójának hivatkozása.
public class Alkalmazott { ... boolean tobbetKeresMint(Alkalmazott masik) { return fizetes > masik.fizetes; } }A teljes program: Alkalmazott.java |
Egy logikai értéket visszaadó metódus, amely megmondja egy alkalmazottról, hogy annak jövedelme közepes-e. A közepesnek tekintett jövedelemsáv alsó és felső határát paraméterként adjuk át a metódusnak.
boolean kozepesJovedelmu(int minimum, int maximum) { return minimum <= fizetes && fizetes <= maximum; }A teljes program: Alkalmazott.java |
Paraméter nélküli metódus, amely megduplázza az alkalmazott fizetését.
void fizetestDuplaz() { fizetes *= 2; }A teljes program: Alkalmazott.java |
Metódus meghívása adott objektumra.
Alkalmazott a; ... a.fizetestDuplaz();A teljes program: Pelda1.java |
Az előző példában szereplő metódushívással azonos hatású kód.
a.fizetes *= 2;A teljes program: Pelda1.java |
Metódus meghívása az aktuális példányra.
void automatikusFizetesEmeles() { if (kozepesJovedelmu(30000, 60000)) fizetestEmel(5000); }A teljes program: Alkalmazott.java |
Visszatérési értékkel bíró metódus használata kifejezésben.
Alkalmazott a; int levonas; ... levonas = a.szja() + a.tb();A teljes program: Pelda2.java |
this
peszeudováltozó
A this pszeudováltozó használata.
boolean kevesebbetKeresMint(Alkalmazott masik) { return masik.tobbetKeresMint(this); }A teljes program: Alkalmazott.java |
Három különböző metódus azonos néven.
public class Alkalmazott { ... void fizetestEmel(int novekmeny) { fizetes += novekmeny; } void fizetestEmel() { fizetes += 5000; } void fizetestEmel(Alkalmazott masik) { if (kevesebbetKeresMint(masik)) fizetes = masik.fizetes; } ... }A teljes program: Alkalmazott.java |
Túlterhelt nevű metódusok hívása: a hívások rendre az első, a második
és a harmadik fizetestEmel metódust hívják meg az előző
példából.
Alkalmazott a = new Alkalmazott(), b = new Alkalmazott(); ... a.fizetestEmel(5000); a.fizetestEmel(); a.fizetestEmel(b);A teljes program: Pelda3.java |
Példányosítás.
Alkalmazott a = new Alkalmazott();A teljes program: Pelda4.java |
Konstans referencia: mindig ugyanarra az objektumra mutat.
final Alkalmazott A = new Alkalmazott(); ... void proba() { A = new Alkalmazott(); // NEM LEHET!!! A.fizetes = 35000; // lehet }A teljes program (fordításnál hibaüzenetet ad): Pelda5.java |
Több változó is hivatkozat ugyanarra az objektumra.
Alkalmazott a, b; a = new Alkalmazott(); b = a; a.fizetes = 50000;A teljes program: Pelda6.java |
Két változó, amelyek értéke egymással összefügg (evesFizetes =
12 * fizetes ).
public class Alkalmazott { ... int fizetes; int evesFizetes; ... }A teljes program: Alkalmazott.java |
Értéket beállító metódus, amely biztosítja az előző példában szereplő
változók közötti összefüggést.
public class Alkalmazott { ... void ujFizetes(int osszeg) { fizetes = osszeg; evesFizetes = 12*osszeg; } }A teljes program: Alkalmazott.java |
Nyilvános metódusok.
public class Alkalmazott { ... public int fizetes() { return fizetes; } public int evesFizetes() { return evesFizetes; } ... }A teljes program: Alkalmazott.java |
Privát változók félnyilvános beállító és nyilvános lekérdező
metódusokkal.
public class Alkalmazott { private int fizetes; private int evesFizetes; ... void ujFizetes(int osszeg) { fizetes = osszeg; evesFizetes = 12*osszeg; } public int fizetes() { return fizetes; } public int evesFizetes() { return evesFizetes; } ... }A teljes program: Alkalmazott.java |
Nyugdíjkorhatárt rögzítő osztályváltozó.
public class Alkalmazott { ... static int nyugdijKorhatar = 60; // általános nyugdíjkorhatár int eletkor; // életkor személyenként .... int hatraVan() { // ennyi évet kell meg dolgozni return nyugdijKorhatar - eletkor; } }A teljes program: Alkalmazott.java |
Osztályváltozó elérése objektumon és osztályon keresztül.
Alkalmazott a = new Alkalmazott(); ... a.nyugdijKorhatar = 65; // ez ugyanazt jelenti, Alkalmazott.nyugdijKorhatar = 65; // mint ezA teljes program: Pelda1.java |
Példányait sorszámozó osztály.
public class Szamozott { private static int kovSzam = 1; public final int SZAM = kovSzam++; }A teljes program: Szamozott.java |
Nyugdíjkorhatárt emelő osztálymetódus.
public class Alkalmazott { ... static void nyugdijKorhatartEmel() { nyugdijKorhatar++; } }A teljes program: Alkalmazott.java |
Osztálymetódus hívása objektumon és osztályon keresztül.
Alkalmazott a = new Alkalmazott(); ... a.nyugdijKorhatartEmel(); Alkalmazott.nyugdijKorhatartEmel();A teljes program: Pelda2.java |
Indító métódus a magyarított Hello World programban.
public class Haliho { public static void main(String[] args) { System.out.println("Haliho, emberek!"); } }A teljes program: Haliho.java |
A program futása az System.exit metódussal fejezhető be.
System.exit(0);A teljes program: Exit.java |
Argumentumait kiíró program.
public class ArgumentumKiiro { public static void main(String[] args) { if (args.length > 0) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); } else { System.out.println("nincsenek argumentumok"); } } }A teljes program: ArgumentumKiiro.java |
Konstruktorok az Alkalmazott osztályhoz.
public class Alkalmazott { ... public Alkalmazott(String nev, int fizetes) { this.nev = nev; this.fizetes = fizetes; this.evesFizetes = 12*fizetes; } public Alkalmazott(String nev) { this.nev = nev; this.fizetes = 40000; this.evesFizetes = 12*fizetes; } ... }A teljes program: Alkalmazott.java |
Konstruktor meghívása másik konstruktor kezdőutasításaként.
public Alkalmazott(String nev) { this(nev,40000); }A teljes program: Alkalmazott.java |
Az Alkalmazott osztály példányosítása különböző
konstruktorokkal.
Alkalmazott a = new Alkalmazott("Kovács János"); Alkalmazott b = new Alkalmazott("Szabó József", 50000);A teljes program: Pelda1.java |
Statikus tömböt feltöltő statikus inicializáló blokk.
public class Alkalmazott { ... static int[] evesSzabadsag = new int [60]; static { for (int i = 0; i < 30; i++) evesSzabadsag[i] = 15; for (int i = 30; i < 40; i++) evesSzabadsag[i] = evesSzabadsag[i-1] + 1; for (int i = 40; i < 50; i++) evesSzabadsag[i] = evesSzabadsag[i-1] + 2; for (int i = 50; i < 60; i++) evesSzabadsag[i] = evesSzabadsag[i-1] + 1; } ... public int evesSzabadsag() { if (eletkor < 60) return evesSzabadsag[eletkor]; else return evesSzabadsag[59]; } }A teljes program: Alkalmazott.java |
Példány tárterületének újrafelhasználása előtt meghívódó metódus.
protected void finalize() throws Throwable { ... }A teljes program: Finalize.java |
Osztály törlése előtt meghívódó metódus.
static void classFinalize() throws Throwable { ... }A teljes program: Finalize.java |
Az Alkalmazott osztály kiegészítése Fonok
osztállyá.
public class Fonok extends Alkalmazott { final int MAXBEOSZT = 20; Alkalmazott[] beosztottak = new Alkalmazott[MAXBEOSZT]; int beosztottakSzama = 0; public void ujBeosztott(Alkalmazott b) { beosztottak[beosztottakSzama++] = b; } }A teljes program: Fonok.java |
Szülőosztály konstruktorának hívása a konstruktor első utasításaként.
public class Fonok extends Alkalmazott { ... public Fonok(String nev, int fizetes) { super(nev, fizetes); } public Fonok(String nev) { this(nev, 100000); } }A teljes program: Fonok.java |
A Fonok osztály felüldefiniálja az Alkalmazott
osztály potlek metódusát.
public class Alkalmazott { ... int nyelvekSzama; ... public int potlek() { return nyelvekSzama*5000; } public int fizetesPotlekokkal() { return fizetes() + potlek(); } } public class Fonok extends Alkalmazott { ... public int potlek() { return super.potlek() + beosztottakSzama*1000; } }A teljes program: Alkalmazott.java, Fonok.java |
Metódus hívása dinamikus összekapcsolással.
Alkalmazott a = new Fonok("Kovács Gyula"); int p, fp; ... p = a.potlek(); fp = a.fizetesPotlekokkal();A teljes program: Pelda2.java |
void m(Alkalmazott a1, Alkalmazott a2) { ... } void m(Alkalmazott a, Fonok f) { ... } void m(Fonok f, Alkalmazott a) { ... } ... Alkalmazott a = new Alkalmazott("Pista"); Alkalmazott af = new Fonok("Jóska"); Fonok f = new Fonok("Géza"); m(a,a); // m(Alkalmazott,Alkalmazott) m(a,af); // m(Alkalmazott,Alkalmazott) m(a,f); // m(Alkalmazott,Fonok) m(f,f); // fordítási hiba m(f,(Alkalmazott)f) // m(Fonok,Alkalmazott)A teljes program (fordításnál hibaüzenetet ad): Tulterheles.java |
protected
hozzáférési kategória
Absztrakt síkidom osztály.
public abstract class Sikidom { private boolean keruletKiszamitva = false; private boolean teruletKiszamitva = false; private double kerulet; private double terulet; public double kerulet() { if (!keruletKiszamitva) { kerulet = keruletSzamit(); keruletKiszamitva = true; } return kerulet; } public double terulet() { if (!teruletKiszamitva) { terulet = teruletSzamit(); teruletKiszamitva = true; } return terulet; } protected abstract double keruletSzamit(); protected abstract double teruletSzamit(); }A teljes program: Sikidom.java |
Az absztrakt Sikidom osztály konkrét kiterjesztései.
public class Teglalap extends Sikidom { private double a, b; public Teglalap (double a, double b) { this.a = a; this.b = b; } public double a () { return a; } public double b () { return b; } protected double keruletSzamit () { return 2*(a+b); } protected double teruletSzamit () { return a*b; } } public class Kor extends Sikidom { private double r; public Kor (double r) { this.r = r; } public double r () { return r; } protected double keruletSzamit() { return 2*Math.PI*r; } protected double teruletSzamit() { return r*r*Math.PI; } }A teljes program: Teglalap.java, Kor.java |
Az Object osztály nem engedi meg a getClass
metódus felüldefiniálását.
public class Object { public final Class getClass(); ... }A teljes program: lásd az osztálykönyvtár forráskódját. |
A System osztály nem engedi meg, hogy kiterjesszék.
public final class System { ... }A teljes program: lásd az osztálykönyvtár forráskódját. |