Методы

Все функции языка Java являются членами классов и, как правило, называются методами. Как и в Ruby существуют методы класса и методы экземпляра, каждый из которых может быть общедоступным (public) или "скрытым" (private).

Рассмотрим внимательнее объявление уже неоднократно использованного нами метода main:

public static void main(String[] args)

С этого метода начинается выполнение программы, он вызывается извне класса и поэтому должен иметь квалификатор доступа public. Если метод отмечен как private, то это гарантирует, что он будет использоваться только внутри класса. В нашем курсе мы будем создавать, в основном, public методы.

Ключевое слово static используется так же как и в языке Ruby. Статический метод обычно вызывается в функциональном стиле, а не ассоциируется с каким-либо конкретным экземпляром класса. Именно с такими методами мы и будем иметь дело чаще всего.

Как и переменные, методы в языке Java обязательно требуют указания типа возвращаемого ими результата. Это тип объекта, указываемого в операторе return. Если метод не возвращает значения, то он должен иметь тип void.

Аргументы метода заключаются в круглые скобки, отделяются друг от друга запятыми и также требуют обязательного объявления их типа.


Пример
Рассмотрим программу, которая определяет и использует статический метод gets, предназначенный для ввода данных с клавиатуры.

import java.io.*;

class TestGets {
 public static String gets() throws Exception {
 BufferedReader r = new BufferedReader(
 new InputStreamReader(System.in));
 return r.readLine();
 }
 
 public static void main(String[] args)
 throws Exception{
 System.out.print("Введите целое число: ");
 int a=Integer.parseInt(gets());
 System.out.println("a="+a);
 }
}


Пример
Следующая программа определяет статический метод area для вычисления площади прямоугольника.

class TestArea {
 public static void main(String[] args) {
 double a = area(10.0, 5.5);
 System.out.println(a);
 }
 
 // площадь прямоугольника
 public static double area(double w, double h) {
 double res = w * h;
 return res;
 }	 
}


Задания

  1. Реализуйте статический метод d(int a, int b, int c), который возвращает дискриминант b2-4*a*c квадратного уравнения.
  2. Реализуйте метод, который по порядковому номеру дня недели печатает его название. При решении воспользуйтесь массивом.