Elo, mam taką linijkę kodu:
MojaKlasa moja1 = new MojaKlasa(), moja2;
Czym w takim wypadku jest "moja2" ? Dlaczego stosuje się taki zapis ? thx
Elo, mam taką linijkę kodu:
MojaKlasa moja1 = new MojaKlasa(), moja2;
Czym w takim wypadku jest "moja2" ? Dlaczego stosuje się taki zapis ? thx
Zmienną typu MojaKlasa o wartości null.
Żeby oszczędzić palec. Powyższy kod jest równoważny z takim:
MojaKlasa moja1 = new MojaKlasa();
MojaKlasa moja2;
bogdans napisał(a):
Zmienną typu MojaKlasa o wartości null.
Żeby oszczędzić palec. Powyższy kod jest równoważny z takim:
MojaKlasa moja1 = new MojaKlasa();
MojaKlasa moja2;
Czyli, analogicznie, taki kod:
MojaKlasa moja1, moja2 = new MojaKlasa();
Utworzy 2 obiekty (moja1, moja2) klasy MojaKlasa czy będzie może moja1=null oraz moja2 jako obiekt klasy MojaKlasa ?
mirek1 napisał(a):
MojaKlasa moja1, moja2 = new MojaKlasa();
Utworzy 2 obiekty (moja1, moja2) klasy MojaKlasa czy będzie może moja1=null oraz moja2 jako obiekt klasy MojaKlasa ?
A czy int a, b = 3; spowoduje przypisanie do 'a' trójki czy nie? Jak nie wiesz to dlaczego tego nie sprawdzisz?
Takie sprawdzenie nie jest całkiem trywialne. Kodu
MojaKlasa m;
System.out.println(m);
nie skompilujesz.
Sprecyzuję, łatwo sprawdzić, że kod
MojaKlasa moja1, moja2 = new MojaKlasa();
nie utworzy dwóch obiektów, trudniej sprawdzić, że moja1 == null.
Napisanie krótkiego ifa moim zdaniem jest trywialne.
if(moja1 == null)
{
System.out.println("moja1 to null");
}
Kodu
MojaKlasa moja1,moja2=new MojaKlasa()'
if(moja1 == null)
{
....
}
nie można skompilować: error: variable moja1 might not have been initialized
.