image-ru-01-05

— Привет! Меня зовут Лага Билаабо, я – инопланетянин и врач этой экспедиции, надеюсь, мы станем друзьями.

— Я тоже.

— На нашей родной планете мы используем прогрессивный язык программирования Pascal, вместо отсталой Джавы. Вот тебе небольшой пример сравнения Java и Pascal:

Java Pascal
public class MyFirstClass
{
   public static void main(String[] args)
   {
      int a, b, c;
      String s1, s2;
      System.out.println("Введите два числа");
      a = new Scanner(System.in).nextInt();
      b = new Scanner(System.in).nextInt();
      c = a + b;
      System.out.println("Сумма ваших чисел равна " + c);
   }
}
Program MyFirstProgram;
Var
   a, b, c: Integer;
   s1, s2: String;
Begin
   WriteLn("Введите два числа");
   ReadLn(a);
   ReadLn(b);
   c := a + b;
   WriteLn("Сумма ваших чисел равна ", c);
End.

— Это одна и та же программа, записанная на разных языках. Как видишь, в паскале она занимает меньше строчек – это признак того, что паскаль прогрессивнее.

— Я думаю, такое сравнение может ускорить твое понимание Java, если ты когда-то видел Pascal.

— Нет, не видел, но все равно было бы интересно посмотреть сравнение двух разных языков программирования.

— Разумная мысль. Тогда я продолжу.

— В паскале мы помещаем написанный код в тело программы, в процедуры или в функции. В Джаве все было сильно упрощено: тело программы, процедуры и функции заменили просто функциями. И стали называть их методами.

Java Pascal
Функция main
public static void main(String[] args)
{
   System.out.println("Ho-ho-ho!");
}
Тело программы
Begin
   WriteLn("Ho-ho-ho!");
End.
Функция/Метод
double sqr(double a)
{
   return a * a;
}
Функция
Function Sqr(a: Real): Real
Begin
   Sqr := a * a;
End;
Функция с типом void
void doubleWrite(String s)
{
   System.out.println(s);
   System.out.println(s);
}
Процедура
Procedure DoubleWrite(s: String);
Begin
   WriteLn(s);
   WriteLn(s);
End;

— В столбце с Паскалем я вижу «тело программы», «функцию» и «процедуру», а в Java везде функции. Это как-то странно.

— Да, нам – инопланетянам — это кажется очень странным, но люди любят все унифицировать.

— В Java весь код является функциями, поэтому там даже не надо писать function, как в паскале, чтобы объявить функцию.

— Все очень просто: если строчка кода имеет вид «Тип + имя», то это либо объявление функции, либо переменной. Если после имени стоят скобочки – значит это объявление новой функции. Если скобочек нет – объявление новой переменной.

— Объявления переменных и функций в Java очень похожи, сравни:

Код Описание
String name;
Переменная с именем name и типом String.
String getName()
{
}
Функция с именем getName и типом возвращаемого результата String.

— И это ещё не всё. В Java функции не могут быть сами по себе. Они обязаны находиться внутри какого-то класса. Поэтому когда человекам нужно написать одну маленькую программку на Java, им нужно сначала создать класс, затем написать в нем функцию main, а уж потом писать в ней свой код. Все земляне — такие чудаки.

— Сегодня ко мне зашел Диего и попросил дать тебе эти задачи, надеюсь тебе они понравятся: