Но вернемся к нашим классам и объектам. Я еще введу базовые инструменты по мере надобности, но вы уже знаете достаточно много.
Итак внимательный слушатель заметил, что мы не можем использовать переменные age и name класса хикка.
Действительно, у нас ведь еще не существует ни одного хикки. Как же его создать?
Для лучшей наглядности давайте создадим класс Доброчан (отдельным файлом) и создадим там метод main
> Hint: в нашем редакторе можно быстро его набрать используя сокращение psvm - public static void main
Вопрос: два метода мейн? так можно?
Ответ: да. И их часто делают чтобы отлаживать класс. При нескольких методах мейн входить в программу можно разными способами. Это как несколько отверстий у тян.
Экземпляр класса создается через оператор New типКласса()
Hikka h1 = new Hikka();
Hikka h2 = new Hikka();
Обратите внимание, что типы переменных h1 и h2 - Hikka - действительно, ведь наш хикка это полноправный java класс!
Обращаться к переменным и методам класса возможно через точку. Помните как мы записываем System.out.prinln()?
Давайте дадим хиккам имена.
h1.name = "Валера";
h2.name = "Антон";
Задание: выведете на экран возраст и имена любого хикки.
> Hint: в нашем редакторе можно быстро набрать команду вывода используя сокращение sout
Но вот беда. Мы не можем изменить возраст нашего хикки, а ведь всего-то хотели установить его один раз, при создании. Что же теперь делать его ради этого public?
Для выяснения этого вопроса нам надо рассмотреть методы класса и методы конструкторы.
Метод (функция) это такая хуита, которая имеет название, как переменная, но в отличие от нее делает блок полезного кода. Думаю определение достаточно академическое. Общая запись метода выглядит так
типВозвращаемогоЗначения/void имяМетода ( ) {
}
Вот так выглядел наш метод getAge
byte getAge() {
}
Остальные параметры не обязательные. Один из таких необязательных параметров это модификатор доступа. Мы с ним знакомились в предыдущих сеансах.
Чтобы тот метод могли видеть все классы мы поставили public
Отсутствие модификатора доступа тоже модификатор доступа! Это видимость на уровне пакета.
И, если поля отвечают на вопросы - что он имеет. То методы на вопрос "что он может делать?"
А что может наш хикка? Запускать космические корабли? Конечно же нет! Он может двачевать капчу!
Давайте создадим теперь наш метод.
public void двачевать() {
System.out.prinln("Доброчан, есть одна тян");
}
Теперь вызовем его из класса доброчан.
h1.двачевать();
Но это довольно скучно. А вот куда интересней - это аргументы метода. В наших скобках мы можем записать переменные, которые будут аргументами этого метода. Вот самая простая демонстрация этой вещи
public void двачевать(String message) {
System.out.prinln(message);
}
Мы записываем в скобках аргументы и далее можем использовать их так, будто бы они переменные.
Сответственно мы должны в этот метод при его вызове "вложить" соответствующие переменные в соответствующем порядке.
Вот так
h1.двачевать("Есть одна тян");
А вот еще пример - метод, возвращающий квадрат.
int квадрат(int num) {
return int * int;
}
Домашнее задание: напишите метод, высчитывающий и возвращающей факториал числа, указанного в качестве аргумента. Выведете на экран факториал 10.