You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tutorial/01_Hello_World.adoc
+33Lines changed: 33 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,9 +97,42 @@ public class Some {
97
97
----
98
98
99
99
Модификатор _public_ задаёт видимость. Как мы уже видели раньше, _public_ -- это открытая видимость, то есть доступная всем.
100
+
101
+
=== Видимости
102
+
100
103
Всего в Java имеется четыре разных видимости:
101
104
102
105
* открытая _public_
103
106
* закрытая _private_ -- может использоваться только внутри класса, подобный член класса виден только внутри этого класса
104
107
* пакетно-закрытая -- не имеет модификатора, видна внутри того же класса, *а также* внутри того же пакета
105
108
* защищённая _protected_ -- также может использовать только внутри класса, видна внутри него же, внутри того же пакета, *а также* внутри наследников этого класса (о них поговорим позже)
109
+
110
+
Таким образом, видимостей имеется четыре, но модификаторов видимости всего три. Без модификатора считается, что видимость пакетно-закрытая (package private). Иногда программисты на Java подобную видимость подчёркивают комментарием:
111
+
[source,java]
112
+
----
113
+
// FILE: SomeClass.java
114
+
package test;
115
+
116
+
public class SomeClass {
117
+
}
118
+
119
+
/* package-private */ class AnotherClass {
120
+
}
121
+
----
122
+
123
+
Обратите внимание, что имя `SomeClass` обязано совпадать с именем файла (открытый класс), а имя `AnotherClass` -- нет.
124
+
125
+
Наиболее часто программисты используют закрытую видимость (для описания деталей реализации, которые не должны быть видны снаружи) и открытую видимость (для описания доступных всем действий с объектом). Если вы новичок в Java, неплохое правило на первое время -- делать закрытыми все поля и открытыми все методы (после этого можно закрыть все те методы, которые используются только внутри класса).
126
+
----
127
+
128
+
=== Статичность
129
+
130
+
[source,java]
131
+
----
132
+
public static void main(String[] args) {
133
+
System.out.println("Здравствуй, мир!);
134
+
}
135
+
----
136
+
137
+
Как мы видим, функция `main` также является _static_, то есть статической. Чтобы понять, что это такое, нам придётся коснуться разницы между классами (class) и их *экземплярами* (class instance). Иногда вместо "экземпляр класса" говорят "объект класса".
0 commit comments