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

Czemu ten konstruktor musi być publiczny?!....

Object Storage Arubacloud
+1 głos
683 wizyt
pytanie zadane 17 czerwca 2016 w Java przez Daniel Dzwonkowski Nowicjusz (230 p.)
package logic;

import data.Pracownicy;

public class Firma {

	Pracownicy p1 = new Pracownicy("Marian", "Kowalski", 55,54684165);
	
}
//nowa klasa



package data;

public class Pracownicy {
	private static int id;
	private String imie;
	private String nazwisko;
	private int wiek;
	private double wyplata;
	
	public Pracownicy(String imie, String nazwisko, int wiek, int wyplata) {
		setImie(imie);
		setNazwisko(nazwisko);
		setWiek(wiek);
		setWyplata(wyplata);
		Pracownicy.setID();
	}
	public static void setID() {
		id = Pracownicy.getId()+1;
	}
	
	
	public String getImie() {
		return imie;
	}
	public void setImie(String imie) {
		this.imie = imie;
	}
	public String getNazwisko() {
		return nazwisko;
	}
	public void setNazwisko(String nazwisko) {
		this.nazwisko = nazwisko;
	}
	public int getWiek() {
		return wiek;
	}
	public void setWiek(int wiek) {
		this.wiek = wiek;
	}
	public double getWyplata() {
		return wyplata;
	}
	public void setWyplata(int wyplata) {
		this.wyplata = wyplata;
	}
	public static int getId() {
		return id;
	}
	public static void setId(int id) {
		Pracownicy.id = id;
	}
	

}

Mam jedno pytanie czemu eclipse sugeruje  mi by Konstruktor Pracownicy był Publiczny gdy tworze obiekt "p1" Klasy Pracownicy w klasie Firma   23 linijka kodu

Przecież konstruktory domyślnie są publiczne i są widoczne dla innych obiektów spoza pakietu

4 odpowiedzi

+2 głosów
odpowiedź 17 czerwca 2016 przez Tomasz90 Nałogowiec (25,140 p.)
Konstruktor bez kwalifikatora public nie jest publiczny tylko ma dostep domyslny i nie jest widziany dla klas z innego pakietu. Takze sugestia IDE jest poprawna.
0 głosów
odpowiedź 17 czerwca 2016 przez Ehlert Ekspert (212,670 p.)
Nie rozumiem pytania. Sugeruje że ma być publiczny, jest publiczny, wszystko działa. W czym jest problem? PS. Użyj dziedziczenia z klasy człowiek która sobie napisz. Unikaj polskiego w kodzie.
0 głosów
odpowiedź 17 czerwca 2016 przez event15 Szeryf (93,790 p.)
Konstruktor jest elementem interfejsu i MUSI być publiczny.
komentarz 17 czerwca 2016 przez event15 Szeryf (93,790 p.)
A dopisanie public to dobry nawyk, i na szczęście coraz częściej wymuszany. Kwantyfikatory widoczności to wymóg i nie powinno się ich olewać, nawet jeśli istnieje możliwość nie wpisania ich.
komentarz 17 czerwca 2016 przez Aisekai Nałogowiec (42,190 p.)
Zawsze? Z tego co pamiętam był jakiś przypadek kiedy konstruktor się robiło prywatny, ale głowy sobie uciąć nie dam.
komentarz 17 czerwca 2016 przez event15 Szeryf (93,790 p.)
No - w przypadku PHP to jest coś takiego jak named constructors, czyli przykrycie prywatnego konstruktora publiczną statyczną funkcją.

Jednak to jest raczej odpowiednik przeciążania konstruktorów w innych językach.
komentarz 17 czerwca 2016 przez Aisekai Nałogowiec (42,190 p.)
Mi chodziło bardziej o Javę. Coś pamiętam, że w jakimś tutorialu (coraxa czy thenewboston, ale bardziej Coraxa) został użyty prywatny konstruktor. Albo to było w C++, nie pamiętam już. Coś chyba z Enum mi się to kojarzy, ale pewien nie jestem, aż sobie oglądnę i przypomnę gdzie:)
1
komentarz 17 czerwca 2016 przez Boshi VIP (100,240 p.)
Może singleton?
komentarz 17 czerwca 2016 przez Mar Cin Dyskutant (8,900 p.)
Na pewno o ten wzorzec  mu chodziło :p
0 głosów
odpowiedź 17 czerwca 2016 przez ShiroUmizake Nałogowiec (46,300 p.)
No tak, zauważ tylko , że nakładasz pracę kompilatorowi. On domyślnie wie, że chcesz public, ale on to musi "zasugerować", póżniej pozostałym klasom i obiektom.

Podobne pytania

0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 2 kwietnia 2017 w C i C++ przez Avernis Nałogowiec (27,400 p.)
0 głosów
3 odpowiedzi 350 wizyt
pytanie zadane 13 kwietnia 2016 w C i C++ przez Munvik Dyskutant (9,350 p.)
0 głosów
5 odpowiedzi 350 wizyt
pytanie zadane 8 maja 2018 w C i C++ przez Alan Hudela Początkujący (340 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...