Skip to content

Commit a7ccb1e

Browse files
authored
Chapter 01: visibility + static start
1 parent 7bd0533 commit a7ccb1e

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tutorial/01_Hello_World.adoc

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,42 @@ public class Some {
9797
----
9898

9999
Модификатор _public_ задаёт видимость. Как мы уже видели раньше, _public_ -- это открытая видимость, то есть доступная всем.
100+
101+
=== Видимости
102+
100103
Всего в Java имеется четыре разных видимости:
101104

102105
* открытая _public_
103106
* закрытая _private_ -- может использоваться только внутри класса, подобный член класса виден только внутри этого класса
104107
* пакетно-закрытая -- не имеет модификатора, видна внутри того же класса, *а также* внутри того же пакета
105108
* защищённая _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). Иногда вместо "экземпляр класса" говорят "объект класса".
138+

0 commit comments

Comments
 (0)