[ Введение | Основы | if/else | Циклы | Массивы | Графика | Анимация | Мышь | Клавиатура | Математика | Методы | Текст | Задачи ]


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
  • Каждое следующее число равно сумме двух предыдущих

Первым такую последовательность придумал Леонардо Фибоначчи, и с тех пор их так и называют — числа Фибоначчи.

Напишем программу, вычисляющую числа Фибоначчи по их номеру.

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?

Перейдем к следующему уроку.

 
proj/lang/judo/tutorial-ru-011.txt · Последние изменения: 2007/03/10 04:28
 
Copyright (C) 1996-2013 Serge Vakulenko
serge@vak.ru