[ [[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 | Перейдем к следующему уроку]].