Внимание. В слайде была ошибка. Имя класса может начинаться со знака доллара ($).
В мире java
все является объектом.
Класс это шаблон, по которому будут создаваться объекты. И этим шаблоном является не сам текстовый файл ИмяКласса.java
, а логическая синтаксическая структура объектов и команд взаимодействия их между собой. Просто эта структура физически записана в текстовом файле. И структура эта имеет четкие правила организации и написания (синтаксис и стиль кода):
Класс обозначается ключевым словом class
. И имя файла, в котором написан этот класс, должно совпадать с именем класса, без учета расширения .java
. Например, для класса по имени MyClass
файл будет называться вот так: MyClass.java
. (синтаксис)
Имя класса всегда пишется с большой буквы! (синтаксис)
Если в имени класса больше одного слова, то каждое из них пишется с большой буквы —> CamelStyle. (стиль кода)
Поля и методы не могут существовать за пределами тела класса. (синтаксис)
Каждый класс имеет свое тело. Условные операторы if
, различные циклы, методы и все, что выделяется в отдельный блок кода — тоже может иметь свое тело. И тела эти всегда заключены в фигурные скобки {}
:
class Foo {
// некий код
}
(синтаксис)
class CamelStyle {
public void doSomething() {
for (int i = 0; i < 10; i++) {
if (i < 5) {
System.out.println("Первая половина");
} else {
System.out.println("Вторая половина");
}
}
}
}
В этом примере в теле класса находится метод, в теле метода — цикл, а в теле цикла — два условных оператора со своими телами.
Соблюдение границ тел классов и других сущностей — важный элемент синтаксиса.
Количество открытых и закрытых скобок в классе должно быть попарно одинаковым. Иначе компилятор не поймет, где чье тело. (синтаксис)
Каждая вложенная сущность пишется с отступом в четыре пробела от первого символа сущности в которую она вложена. Соблюдение этих отступов делает код более понятным и логически структурированным, а не набором магических заклинаний. Несоблюдение этого правила не приведет к ошибке компиляции. Но если вы хотите чтобы ваш код понимали другие программисты, да и вы сами, то его нужно соблюдать. Рекомендую к ежедневному перечитыванию java-codestyle. (стиль кода)
Разберем структуру класса на примере в коде:
1 class CamelStyle {
2
3 ••••String stringMessage = "некая полезная строка, как поле класса";
4 ••••Object forExample = new Object();
5
6 ••••public void doSomething() {
7 ••••••••System.out.println(stringMessage);
8 ••••••••System.out.println(forExample);
9 ••••}
10
11}
(Циферки и точки тут для удобства объяснения. Их копировать не нужно!)
class
в строке 1
обозначает начало класса.CamelStyle
это имя класса.{
это открывающая фигурная скобка. Отступает на один пробел от имени класса. За ней начинается тело класса. Эта скобка не может существовать без своей закрывающей компаньонки }
! Абсолютно вся суть класса содержится между этими скобками. Пустой класс выглядел бы вот так: class CamelStyle {}
(это компилируется).2
— это отступ от объявления класса. Его отсутствие не приведет к ошибке компиляции. Но он необходим для удобства чтения кода.}
закрывающая скобка должна быть всегда на уровне первого слова в объявлении класса, метода и т.д. Например, в данном примере, закрывающая скобка класса находится в строке 11
, а закрывающая скобка метода в строке 9
. Обратите внимание на их расположение относительно открывающих скобок.String stringMessage = "некая полезная строка, как поле класса";
строка 3
и Object forExample = new Object();
строка 4
— это поля класса. Начало их записи с отступом в четыре пробела от уровня класса.public void doSomething() {
... строка 6
— это начало метода. Обратите внимание, что у него свои фигурные скобки, свое тело. Но метод весь находится внутри тела класса. О методах продолжим в дальнейших уроках. Эта строка так же начинается на четыре пробела дальше от уровня класса.System.out.println(stringMessage);
строка 7
и System.out.println(forExample);
строка 8
— это команды для вывода на экран. Они вложены в метод doSomething
и имеют отступ в четыре пробела от уровня метода.Потренируйтесь самостоятельно компилировать класс CamelStyle
. Командой javac CamelStyle.java
. Возьмите, по очереди, оба варианта этого класса из текста выше.
Попробуйте поудалять или попереставлять скобки. Посмотрите на ошибки компилятора. И обязательно почитайте их! Так вы быстро привыкнете понимать вывод компилятора об ошибках, т.к. вы знаете где вы их сделали.
А если вам хочется этот класс не только скомпилировать, но и запустить на исполнение — то для этого нужен main
-метод, с которого начинается любая программа.
Я его оформил в отдельном классе:
class MainTest {
public static void main(String[] args) {
CamelStyle camelStyle = new CamelStyle();
camelStyle.doSomething();
}
}
Оба класса должны лежать в одной папке. Компилируются командой javac MainTest.java CamelStyle.java
или просто javac MainTest.java
— компилятор автоматом скомпилирует нужный , используемый в MainTest.java
, класс CamelStyle.java
.
Запускать на исполнение нужно только тот класс, который содержит в себе main
-метод.
В данном случае это будет так: java MainTest
. Напоминаю: расширение файла для команды java
не пишем!
Перенесите main
-метод в CamelStyle.java
. Скомпилируйте и запустите на исполнение программу уже без участия MainTest.java
.
Начиная с java11, однофайловые программы можно не компилировать, а сразу запускать на исполнение. Например класс:
class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Можно сразу скормить java. Команда будет выглядеть так: java Main.java
. В данном случае нужно обязательно указать расширение файла .java
. Иначе java будет автоматически искать класс с расширением .class
.
UML-диаграммы это обычные диаграммы с фигурками и значками.
Начнем с индикаторов, обозначающих модификаторы доступа:
+ public
- private
# protected
default (нет никакого модификатора доступа)
Имена полей и их типы в диаграммах пишутся через двоеточие, например: countr: int
, name: String
. Но в коде, не забывайте, сначала пишем тип, а потом имя.
Экспериментируйте с кодом смелее!
Полезные ссылки:
UML-диаграммы можно создавать различными приложениями, как платными так и бесплатными:
Вам ответят команда поддержки Хекслета или другие студенты.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт