• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Java] Obiekt stworzony bez konstruktora

0 głosów
323 wizyt
pytanie zadane 8 października 2015 w Java przez niezalogowany

Dobry. Jak w temacie. Chciałbym stworzyć obiekt, który nie będzie bazować na konstruktorze, tzn. Mam taki kod 

//w klasie Mebel 
public Mebel(String nazwa, double cena){
        this.nazwa= nazwa;
        this.cena= cena;
}

//w klasie Main
 public static void dodajMebel(Mebel m)
	 {
	        listaMebli.add(m);
	 }
	
	public static void dodajMeble()
	{
            dodajMebel(new Mebel("Komoda", 1750));
            dodajMebel(new Mebel("Szafka", 1000));
            dodajMebel(new Mebel("Łóżko", 500));
        }

 

Czytałem, że można to osiągnąć poprzez Enum / deserializację. O co w tych dwóch "metodach" biega? O enumie wiem tyle, że jest to wyliczanie, ale nie widzę tego w obiektach w Javie. Ktoś, coś ogarnia ten temat?

2 odpowiedzi

0 głosów
odpowiedź 8 października 2015 przez Dorion300 Szeryf (90,250 p.)
wybrane 8 października 2015
 
Najlepsza
deserializacja?
Trochę zasobożerny proces dla procesora moim zdaniem.
Dlaczego nie chcesz konstruktora?
jak ma ono wtedy ono bazować?
Czyli jak chcesz tworzyć obiekty z informacjami w niej?
O, może ci pomoże przeładowywanie metod?
warto dodać że możesz mieć kilka konstruktorów na raz
A następnie wtedy program sam sobie wybierze odpowiednią.
komentarz 8 października 2015 przez niezalogowany

Problem z konstruktorem jest taki, że on ma pewien schemat np: nazwę i cenę którą zawsze muszę podać tworząc obiekt, ale np może być krzesło metalowe i krzesło z drewna, krzesło z drewna nie będzie mieć zmiennej która jest odpowiedzialna za "metal", a krzesło z metalu nei będzie mieć zmiennej która jest "drewnem". Chce mieć taki elastyczny konstruktor, który będzie mógl mieć np. 

dodajMebel(new Mebel("Łóżko", 500, "czarny", "buk"));
dodajMebel(new Mebel("Krzeslo-metalowe", 500, "niebieskie", "aluminium", "nierdzewne", "max obciazenie do 300kg"));

 

komentarz 8 października 2015 przez przemko06 Początkujący (370 p.)

nie do końca rozumiem. Powiedzmy ze masz dwa kryteria czyli że raz podasz tyle informacji a raz tyle. To można zrobić przecież dwa konstruktory lub wiecej w zależności ile bedziesz chciał tych danych podać. Przykładowo odnosząc się do tego co napisałeś czemu by nie zrobić tak?:

public Mebel(String mebel, int cena, String kolor, String wykonanie) {
this.mebel = mebel;
this.cena = cena;
this. kolor = kolor;
this.wykonanie = wykonanie;
}

public Mebel(String mebel, int cena, String kolor, String wykonanie, String info, String obciazenie) {
this.mebel = mebel;
this.cena = cena;
this. kolor = kolor;
this.wykonanie = wykonanie;
this.info = info;
this.obiazenie = obciazenie;

}

 

dwa konstruktory, w zależności od wysyłanej ilości informacji ten się wykonuje. Potrzebujesz wiecej to zrób wiecej.

komentarz 8 października 2015 przez niezalogowany
No w sumie racja.
0 głosów
odpowiedź 8 października 2015 przez Grzyboo Nałogowiec (28,880 p.)
A może po prostu dodaj jeszcze jeden konstruktor, tyle, że bezargumentowy

Podobne pytania

0 głosów
2 odpowiedzi 168 wizyt
pytanie zadane 6 lutego 2016 w C i C++ przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 322 wizyt
pytanie zadane 5 czerwca 2020 w Java przez BezBarwny Użytkownik (700 p.)
0 głosów
1 odpowiedź 425 wizyt

93,607 zapytań

142,529 odpowiedzi

322,999 komentarzy

63,098 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...