[ [[tutorial-ru-001 | Введение]] | [[tutorial-ru-002 | Основы]] |
[[tutorial-ru-003 | if/else]] | [[tutorial-ru-004 | Циклы]] |
[[tutorial-ru-005 | Массивы]] | [[tutorial-ru-006 | Графика]] |
[[tutorial-ru-007 | Анимация]] | [[tutorial-ru-008 | Мышь]] |
[[tutorial-ru-009 | Клавиатура]] | [[tutorial-ru-010 | Математика]] |
[[tutorial-ru-011 | Методы]] | [[tutorial-ru-012 | Текст]] |
[[tutorial-ru-013 | Задачи]] ]
----
== Java для школьников: урок 11 ==
====== Методы ======
Метод - это последовательность инструкций, которые выполняют
некоторуе часто повторяющееся действие.
Чтобы не повторять всякий раз 10 строк кода, мы можем поместить их
в тело метода и вызывать его одной строкой.
Метод может вызывать другие методы. Для этого у каждого метода
есть уникальное имя.
Рассмотрим пример:
void print1() {
printLine("Который построил Джек.");
printLine("");
}
void print2() {
printLine("Которая в темном чулане хранится");
printLine("В доме,");
print1();
}
void print3() {
printLine("Которая часто ворует пшеницу,");
print2();
}
void print4() {
printLine("Который пугает и ловит синицу,");
print3();
}
void print5() {
printLine("Который за шиворот треплет кота,");
print4();
}
void print6() {
printLine("Лягнувшую старого пса без хвоста,");
print5();
}
void print7() {
printLine("Которая доит корову безрогую,");
print6();
}
void print8() {
printLine("Который бранится с коровницей строгою,");
print7();
}
void print9() {
printLine("Которые будят того пастуха,");
print8();
}
void main() {
printLine("Вот дом,");
print1();
printLine("А это пшеница,");
print2();
printLine("А это веселая птица-синица,");
print3();
printLine("Вот кот,");
print4();
printLine("Вот пес без хвоста,");
print5();
printLine("А это корова безрогая,");
print6();
printLine("А это старушка, седая и строгая,");
print7();
printLine("А это ленивый и толстый пастух,");
print8();
printLine("Вот два петуха,");
print9();
}
Запустите эту программу. Наша программа гораздо короче чем получившийся
стишок, не правда ли?
===== Передача параметров =====
Методы могут принимать значания посредством передачи параметров.
Вот как это делается:
void print1(String a, String b) {
printLine(a + " " + b);
printLine(a + " " + b);
printLine("Вот как, вот как " + b);
printLine("Вот как, вот как " + b);
printLine("");
}
void main() {
print1("Жил-был у бабушки", "серенький козлик");
print1("Бабушка козлика", "очень любила");
print1("Вздумалось козлику", "в лес погуляти");
print1("Напали на козлика", "серые волки");
print1("Остались от козлика", "рожки да ножки");
}
Здесь метод print1 принимает два параметра "a" и "b" типа String.
Вообще говоря, параметры (их еще называют аргументами) могут быть
любого типа. Например, int, double, boolean, и так далее.
Количество параметров метода может быть любым, главное,
при вызове не перепутать их порядок.
Метод, приведенный выше, использует значения аргументов
для печати очередного куплета песенки.
===== Возвращаемые значения =====
В предыдущем примере возвращаемое значение ниших методов было обозначено
как "void". Слово void переводится как "пусто" и означает, что никакое
значение не возвращается.
Если мы хотим, чтобы метод вернул какое-то значение, мы должны обозначить
его тип в объявлении метода. Например:
int fibo(int n)
Метод fibo принимает один параметр целого типа и возвращает целое значение.
Рассмотрим последовательность целых чисел, которая определяется
такими правилами:
* Первое число равно 1
* Второе число равно 1
* Каждое следующее число равно сумме двух предыдущих
Первым такую последовательность придумал Леонардо Фибоначчи,
и с тех пор их так и называют ---
[[http://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%A4%D0%B8%D0%B1%D0%BE%D0%BD%D0%B0%D1%87%D0%B8 | числа Фибоначчи]].
Напишем программу, вычисляющую числа Фибоначчи по их номеру.
int fibo(int n) {
if (n <= 2)
return 1;
int a = fibo (n-1);
int b = fibo (n-2);
return a + b;
}
void main() {
int n, fn;
while (true) {
printLine("Введите номер числа Фибоначчи:");
n = readInt();
fn = fibo(n);
printLine("Число Фибоначчи с номером " + n + " равно " + fn);
}
}
Знаете ли Вы, что:
* Число Фибоначчи с номером 12 равно 12*12 = 144?
* Число Фибоначчи делится на 7 тогда и только тогда, когда его номер делится на 8?
* Максимальное значение, которое может вычислить эта программа - число Фибоначчи с номером 46?
----
[[tutorial-ru-012 | Перейдем к следующему уроку]].