Hirdetés
- Motorola G86 - majdnem Edge
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Xiaomi 15 - kicsi telefon nagy energiával
- MWC 2026: Úgy kell ide az aktív hűtés, mint kígyónak a sportcipő
- Milyen okostelefont vegyek?
- Xiaomi 11 Lite 5G NE (lisa)
- Telekom mobilszolgáltatások
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- iPhone topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
szcsaba1994
#7030
üzenetére
Ilyesmire gondolsz?
public class Main {
static abstract class A {
private final int f1;
private int f2;
A() {
this.f1 = 100;
}
A(int f1) {
this.f1 = f1;
}
void setF2(int f2) { this.f2 = f2; }
int getF1() { return this.f1; }
int getF2() { return this.f2; }
}
static abstract class B extends A {
private final int f3;
private int f4;
B(int f3) {
super();
this.f3 = f3;
}
B(int f1, int f3) {
super(f1);
this.f3 = f3;
}
void setF4(int f4) { this.f4 = f4; }
int getF3() { return this.f3; }
int getF4() { return this.f4; }
}
static final class C extends B {
C() {
super(300);
}
C(int f1) {
super(f1, 3000);
}
C(int f1, int f3) {
super(f1, f3);
}
C(int f1, int f2, int f3) {
super(f1, f3);
setF2(f2);
}
}
public static void main(String[] args) {
A a = new C(1, 3);
a.setF2(2);
System.out.println(a.getF1() + ", " + a.getF2());
B b = new C(10, 30);
b.setF2(20);
b.setF4(40);
System.out.println(b.getF1() + ", " + b.getF2() + ", " + b.getF3() + ", " + b.getF4());
C c = new C();
c.setF2(200);
c.setF4(400);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
c = new C(1000);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
c = new C(10000, 30000);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
c = new C(100000, 200000, 300000);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
}
}A super kulcsszó a barátod. Ezzel hívhatod meg az ős konstruktorát, itt adhatod át a konstruktor argumentumokat is. Ezeket vagy kívülről kapja a konstruktor, vagy akár egy konstanst is átadhatsz, attól függ, mi a cél. A fieldeket beállíthatja konstruktor, vagy ha példányosításkor még nem tudod, akkor setter. Most vegyesen vannak.
Lehet több konstruktor is egy osztályon belül, természetesen eltérő paraméterezéssel. Lehet default konstruktor. Ha default konstruktort hívsz, a super(); lényegében elhagyható, mivel a compiler mindig belefordítja. Mindig az első sorba... tehát az ős mindig készen fog állni arra, hogy az adattagjait piszkálhasd.
Ha nem tetszik a konstruktoron belüli setter hívogatás, a fieldeket teheted protecteddé, így közvetlenül is értéket adhatsz nekik. De ilyenkor a csomagon belül minden más osztály is írhatja ezeket az adattagokat.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Formula-1
- Tesla topik
- Apple asztali gépek
- exHWSW - Értünk mindenhez IS
- Motorola G86 - majdnem Edge
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Teljes verziós játékok letöltése ingyen
- Milyen monitort vegyek?
- Xiaomi 15 - kicsi telefon nagy energiával
- Gyúrósok ide!
- További aktív témák...
- 0% THM 4 havi részlet, beszámítás! Gamer PC, notebook, konzol, Apple termék, hardver KAMATMENTESEN!
- MS SQL Server 2016, 2017, 2019
- 267 - Lenovo ThinkBook 16 (G6 ABP) - AMD Ryzen 5 7530U, no GPU
- Samsung Galaxy A33 5G / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- HP EliteBook 840 G11 Ultra 7 / 16GB RAM / 512GB SSD / FHD+ IPS / Garancia 2027.11.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

