Wpis z mikrobloga

Jeśli mamy 2 konstruktory z tą samą nazwą - pierwszy z 2 parametrami a drugi z 1, to co jest w miejscu drugiego parametru jeśli stworzę obiekt z pojedycznym parametrem? 0? null? Jak to rozumieć

#java #programowanie
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Aureos to zależy, powinno być w konstruktorze opisane co się dzieje, albo przy jakimś polu. Jak pokażesz kod/podasz przykład to postaram się pomóc, bo to pytanie jest dość ogólne
  • Odpowiedz
Jeśli mamy 2 konstruktory z tą samą nazwą


@Aureos: Innej opcji niż ta sama nazwa nie ma. Jeśli będzie miał inną nazwę to będzie błąd kompilacji.

Jeśli stworzysz obiekt wywołując konstruktor z pojedynczym parametrem to zostanie wywołany tylko ten konstruktor.

Przed wywołaniem konstruktora dla pól w klasie przypisywane są domyślne wartości. Dla referencji null, dla typów prostych w uproszczeniu zera i false dla boolean. Jeśli w konstruktorze nie zostaną nadpisane
  • Odpowiedz
@Aureos: jak masz konstruktor i parametry, to coś z tymi parametrami robisz. Jak nie masz parametru to nic z nim nie zrobisz.

I teraz zależy gdzie to wykorzystujesz.

Przykład 1. Wypisujesz to co w
  • Odpowiedz
@Aureos tu chłopaki Ci dobrze mówią. Ja bym tylko dodał, że z typami prymitywnymi jest ciut inaczej, bo jak ich nie zainicjalizujesz to przyjmą domyślną wartość, np. boolean ma false domyślnie. Jeżeli masz obiekty, to jak nie zainicjalizujesz to będzie null.
  • Odpowiedz
To tak samo jakbyś zrobił po prostu:

String nazwisko;

System.out.print(nazwisko);// null


@mk321: @Aureos: Tutaj warto zwrócić uwagę na jeszcze jedną rzecz. Wartości domyślne są przypisywane tylko dla pól w klasie. Zmienne lokalne (np. w metodzie) muszą być przed pierwszym użyciem zainicjalizowane (coś do nich trzeba przypisać).
Te dwie linie wklejone czy to do klasy czy do metody Ci się nie skompilują. @mk321
  • Odpowiedz