Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Точно так же в предыдущем примере вторая пара методов различается именем аргументов, которые также не входят в определение сигнатуры и не позволяют определить, какой из двух методов должен быть вызван.
Аналогично, третья пара различается лишь модификаторами доступа, что также недопустимо.
Наконец, завершает заголовок метода throws-выражение. Оно применяется для корректной работы с ошибками в Java и будет подробно рассмотрено в соответствующей лекции.
Пример объявления метода:
public final java.awt.Point createPositivePoint(int x, int y) throws NlegalArgumentException
{
return (x>0 && y>0) ? new Point(x, y) : null;
}
Далее, после заголовка метода следует тело метода. Оно может быть пустым и тогда записывается одним символом "точка с запятой". Native-методы всегда имеют только пустое тело, поскольку настоящая реализация написана на другом языке.
Обычные же методы имеют непустое тело, которое описывается в фигурных скобках, что показано в многочисленных примерах в этой и Других лекциях. Если текущая реализация метода не выполняет никаких Действий, тело все равно должно описываться парой пустых фигурных скобок:
Public void empty() {}
Если в заголовке метода указан тип возвращаемого значения, а не ^°'d, то в теле метода обязательно должно встречаться return-выражение.
Ри этом компилятор проводит анализ структуры метода, чтобы гаранти-13»
Однако логика работы конструкторов имеет и некоторые важные особенности. Поскольку при их вызове осуществляется создание и инициализация объекта, становится понятно, что такой процесс не может происходить без обращения к конструкторам всех родительских классов. Поэтому вводится обязательное правило - первой строкой в конструкторе должно быть обращение к родительскому классу, которое записывается с помощью ключевого слова super.
public class Parent { private int x, у;
public Parent() { x=y=0;
}
public Parent(int newx, int newy) { x=newx; y=newy;
}
}
public class Child extends Parent { public Child() { super();
}
public Child(int newx, int newy) { super(newx, newy);
}
}
Как видно, обращение к родительскому конструктору записывается с помощью super, за которым идет перечисление аргументов