Oferty pracy dla inżynierów
  • STREFA INŻYNIERA (current)
  • Oferty pracy
  • Metale
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektronika
    • Automatyka
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Zaloguj się
  • STREFA INŻYNIERA
  • Oferty pracy
  • Metale
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektroniki
    • Automatyki
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Logowanie
  • Zaloguj się
Konstruktory w JAVA
Categories

Konstruktory w JAVA

W poprzednich przykładach zmienne składowe obiektów klasy Vehicle musieliśmy inicjować za pomocą sekwencji instrukcji przedstawionych poniżej:

minivan.passengers = 7;
minivan.fuelcap = 65;
minivan.lkm = 9.1;

Takiego rozwiązania nie spotkasz w żadnym profesjonalnym kodzie Java. Nie tylko dlatego, że jest ono narażone na błędy (możesz na przykład zapomnieć zainicjować jedną zmienną), ale głównie dlatego, że istnieje dużo lepszy sposób wykonania tego zadania: konstruktor.

Zadaniem konstruktora jest inicjalizacja obiektu podczas jego tworzenia. Konstruktor ma taką samą nazwę jak klasa i z punktu widzenia składni jest podobny do metody. Konstruktory nie mają jednak określonego typu zwracanego. Zwykle konstruktor nadaje wartości początkowe zmiennym składowym obiektu lub wykonuje inne czynności wymagane do nadania obiektowi ostatecznej postaci. 

Niezależnie od tego, czy zdefiniujesz konstruktor, czy nie, wszystkie klasy w języku Java mają konstruktor. Java automatycznie dostarcza dla każdej klasy konstruktor domyślny inicjalizujący zmienne składowe domyślnymi wartościami zero, null i false odpowiednio dla typów numerycznych, referencji i typu boolean. Jeśli zdefiniujesz jednak własny konstruktor, konstruktor domyślny przestanie być używany.

Na listingu 4.10 przedstawiłem prosty przykład używający konstruktora.

Listing 4.10. ConsDemo.java

// Prosty konstruktor.
class MyClass {
  int x;
  MyClass() { Konstruktor klasy MyClass.
    x = 10;
  }
}
class ConsDemo {
  public static void main(String args[]) {
    MyClass t1 = new MyClass();
    MyClass t2 = new MyClass();
    System.out.println(t1.x + " " + t2.x);
  }
}

W tym przypadku konstruktor klasy MyClass ma postać

MyClass() {
  x = 10;
}

Przypisuje on zmiennej składowej x klasy MyClass wartość 10. Konstruktor ten zostaje automatycznie wywołany, gdy tworzony jest obiekt klasy za pomocą instrukcji new. Na przykład wiersz kodu

MyClass t1 = new MyClass();

powoduje wywołanie konstruktora MyClass() dla obiektu t1, który składowej t1.x nadaje wartość 10. To samo dotyczy obiektu t2. Po jego utworzeniu składowa t2.x ma wartość 10. Zatem wykonanie programu spowoduje wyświetlenie następującej informacji:

10 10

Konstruktory z parametrami

Konstruktor z poprzedniego przykładu nie miał żadnego parametru. W niektórych sytuacjach to wystarcza, ale najczęściej przydatne są konstruktory mające jeden lub więcej parametrów. Parametry dodajemy do konstruktora tak samo jak w przypadku metody: deklarujemy je wewnątrz nawiasów występujących po nazwie konstruktora. Na listingu 4.11 przedstawiłem przykład wykorzystujący
konstruktor klasy MyClass z jednym parametrem.

Listing 4.11. ParmConsDemo.java

// Konstruktor z parametrem.
class MyClass {
  int x;
  MyClass(int i) { Konstruktor ma parametr.
    x = i;
  }
}
class ParmConsDemo {
  public static void main(String args[]) {
    MyClass t1 = new MyClass(10);
    MyClass t2 = new MyClass(88);
    System.out.println(t1.x + " " + t2.x);
  }
}

Wykonanie tego przykładu spowoduje wyświetlenie poniższych informacji:

10 88

W tej wersji programu konstruktor MyClass() definiuje jeden parametr o nazwie i, który służy do inicjalizacji zmiennej składowej x. Zatem wykonanie poniższego wiersza kodu

MyClass t1 = new MyClass(10);

powoduje nadanie parametrowi i wartości 10, którą następnie konstruktor przypisuje zmiennej składowej x.

Java. Przewodnik dla początkujących. Wydanie VI, Autor: Herbert Schildt, Wydawnictwo: Helion
Zaloguj się aby dodać komentarz

Podobne artykuły

« Słowo kluczowe staticPodstawy klas w JAVA »

Podziel się ze znajomymi tym artykułem - udostępnij na FB lub wyślij e-maila korzystając z poniższych opcji:

MARS
Angielski techniczny
Oferty pracy dla inżynierów

STAŻ | ZESPÓŁ TESTÓW I WERYFIKACJI PRODUKTÓW | STAŻYSTA MECHATRONIK | INPOST

Program Kariera - Polska Rada Biznesu
Zabierzów k .Krakowa, dowolny Region
3500 PLN

STAŻ | DZIAŁ LOGISTYKI | STAŻYSTA W DZIALE LOGISTYKI | CURTIS HEALTH CAPS

Program Kariera - Polska Rada Biznesu
Wysogotowo k. Poznania, dowolny Region
3500 PLN

STAŻ | DZIAŁ ZAPEWNIENIA JAKOŚCI | STAŻYSTA ZAPEWNIENIA JAKOŚCI | CURTIS HEALTH CAPS

Program Kariera - Polska Rada Biznesu
Wysogotowo k. Poznania, dowolny Region
3500 PLN

STAŻ | DZIAŁ ZAKUPÓW | STAŻ W DZIALE ZAKUPÓW | CURTIS HEALTH CAPS

Program Kariera - Polska Rada Biznesu
Wysogotowo k. Poznania, dowolny Region
3500 PLN

STAŻ | DZIAŁ CZĘŚCI WIZUALNE | STAŻ W DZIALE CZĘŚCI WIZUALNE | INTER CARS

Program Kariera - Polska Rada Biznesu
Cząstków Maz./Warszawa (Bielany), dowolny Region
3500 PLN

STAŻ | DZIAŁ LABORATORIUM I KONTROLI JAKOŚCI | STAŻ W DZIALE LABORATORIUM I KONTROLI JAKOŚCI | INTER CARS

Program Kariera - Polska Rada Biznesu
Blizne Łaszczyńskiego k. Warszawy, dowolny Region
3500

wszystkie oferty

Mapa ofert pracy dla inżynierów

Strefainzyniera.pl - rynek, praca, rozwój - wszystko co ważne dla inżynierów

  • Dla pracodawcy
  • Artykuły
  • Praca
  • Publikacje
  • Popularne stanowiska
  • Offer in English
  • Regulamin
  • Regulamin dla klientów
  • Polityka prywatności
  • Polityka cookies
  • Kontakt

© 2011 - 2021 NetPortal

Mapa strony Letnisko blisko