Dlaczego widzę tak wiele przykładów, które są typem prywatnym przed polem, podczas gdy pola afaik są domyślnie prywatne.
private int number;
int number;
//Both of these are the same afaik. Yet, in a ton of examples private gets fully written, why?
Odpowiedzi:
16 dla odpowiedzi nr 1Nie, nie są one takie same, brak modyfikatora dostępu jest domyślnie pakietem prywatnym.
Zobacz: http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
Wyjątkiem od tej reguły jest to interface
podpisy metod i pól są public
gdy modyfikator dostępu zostanie pominięty: http://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html
2 dla odpowiedzi nr 2
Domyślnie nie jest prywatny, jest "pakietem" (bez słowa kluczowego).
Wszystkie klasy w tym samym pakiecie widzą pole.
2 dla odpowiedzi nr 3
To nie to samo. W tym przypadku nie określając modyfikatora dostępu w Javie private
oznacza, że używany jest domyślny modyfikator dostępu. Oznacza to, że wszystko na tej samej paczce z twoją klasą ma dostęp do tych członków.
The private
modyfikator dostępu oznacza, że tylko ta konkretna klasa będzie mieć dostęp do jej członków.
Dzieje się tak dlatego, że klasa chroni dane i zapobiega przypadkowemu uszkodzeniu danych.
Należy zapoznać się to po więcej informacji.
Teraz, jeśli chcesz uzyskać dostęp do tych członków, musisz utworzyć metody getter, na przykład:
public class foo{
private int x = 5;
public int getX(){ return x;}
}
Podobnie, jeśli chcesz zmienić wartość członków, możesz utworzyć metody ustawiania:
public int setX(int x){ this.x = x;}
1 dla odpowiedzi nr 4
Jeśli nie podasz żadnego modyfikatorawłaściwość / metoda, ma domyślny modyfikator. Co oznacza, że dostęp do niego można uzyskać tylko w tej samej klasie lub pakiecie. Natomiast prywatny modyfikator ogranicza dostęp do właściwości w ramach zdefiniowanej klasy.
0 dla odpowiedzi № 5
Powyższy link jest prawidłowy i powinieneś go przeczytaćzobacz, który modyfikator dostępu można zastosować do klasy, struktury, zmiennej i etc .... Ale w języku C #, gdy modyfikator dostępu nie jest dostępny, tak jak w drugim odwołaniu, domyślnie modyfikator jest prywatny, a nie wewnętrzny. Wewnętrzny jest dla klas i struktur.
Dla Java jest widoczny pakiet
na przykład
klasa A{}
jest taki sam z
klasa wewnętrzna A {}