proste ćwiczenie z inicjalizowania referencji

0

Witam wszystkich.
uczę się Javy z Thinking in Java wyd. 4 i jest tam pytanie, na które odpowiedz jest pewnie banalnie prosta i jak poznam odpowiedź, to będzie mi głupio, że to pytałem... ale nie wiem jak to zrobić, bo co nie zrobię to kompilator pokazuje jakiś błąd
Mam nadzieję, że ktoś z Was mi pomoże.

ćwiczenie 1 z rozdziału 5 (Inicjalizacja i sprzątanie)

Ćw. Utwórz klasę zawierającą niezaincjalizowaną referencję klasy String. Wykaż, że ta referencja zostanie zainicjalizowana przez system wykonawczy z wartością pustą(null)

Jak powinien wyglądać ten kod?

0

po prostu:

class KlasaTestowa{

public static void main(String[] args){
    KlasaTestowa kl = new KlasaTestowa();
    System.out.println("Dowod: "+getStr());
}
public String getStr(){
   return str;
}

private String str;
}

Ogolnie jest to przyklad zlego programowania bo powinno sie inicjalizowac wszystkie pola. Jednakze w Java pola klasy sa automatycznie inicjalizowane wartosciami domyslnymi jesli nie zostalo to zrobione np w konstruktorze lub przy definicji.

Powyzszy kod jest dowodem, bo gdyby pole "str" nie bylo zainicjalizowane to mialbyc po kompilacji blad. A bledu nie bedzie bo pole "str" zostalo automatycznie zainicjalizowane z wartoscia "". Np dla int wartosc domysla wynosi 0;

Pamietaj jednak, ze automatyczna inicjalizacja dziala dla pol. Jesli np w metodzie deklarujesz zmienna przypuscimy ze int i; to musisz ja rowniez recznie zainizjalizowac bo inaczej dostaniesz blad.

0

Dzięki za odpowiedź... niestety wyskakuje:

KlasaTestowa.java non-static method getStr() cannot be referenced from a static context
System.out.println("Dowod: "+getStr());

1 error

i strzałka wskazująca na 'g' z getStr()

0

dodaj 'static' przed String getStr()

0
aigimig napisał(a)

dodaj 'static' przed String getStr()

dodałem i nic się nie zmieniło... ten sam błąd

0

nieprawda, przyjrzyj się uwaznie, bład jest juz inny :) brakuje jeszcze static przed String str

0

oo działa :-) [browar]

dziekuję za pomoc:) dzięki, dzięki dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1