Реклама:

Имя метода, число и типы параметров образуют сигнатуру (signature) метода. Компилятор различает методы не по их именам, а по сигнатурам. Это позволяет записывать разные методы с одинаковыми именами, различающиеся числом и/или типами параметров. Такое дублирование методов называется перегрузкой методов. Тип возвращаемого значения не входит в сигнатуру метода, значит, методы не могут различаться только типом результата их работы.

Окончательные члены и классы

Пометив метод модификатором final, можно запретить его переопределение в подклассах. Это удобно в целях безопасности для уверенности, что метод выполняет те действия, которые вы задали. Именно так определены математические функции sin(), cos() и прочие в классе Math. Для полной безопасности, поля, обрабатываемые окончательными методами, следует сделать закрытыми (private).

Если же пометить модификатором final весь класс, то его вообще нельзя будет расширить. Так определен, например, класс Math: public final class Math{ . . . }

Для переменных модификатор final имеет совершенно другой смысл. Если пометить модификатором final описание переменной, то ее значение (а оно должно быть обязательно задано или здесь же, или в блоке инициализации или в конструкторе) нельзя изменить ни в подклассах, ни в самом классе. Переменная превращается в константу. Именно так в языке Java определяются константы: public final int MIN_VALUE = -1, MAX_VALUE = 9999;

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

Класс Object

На самой вершине иерархии классов Java стоит класс Object. Если при описании класса мы не указываем никакое расширение, т. е. не пишем слово extends и имя класса за ним, то Java считает этот класс расширением класса Object, и компилятор дописывает это за нас:

class MyClass extends Object{ . . . }

Можно записать это расширение и явно. Сам же класс Object не является ничьим наследником, от него начинается иерархия любых классов Java. В частности, все массивы - прямые наследники класса Object. Поскольку такой класс может содержать только общие свойства всех классов, в него включено лишь несколько самых общих методов. Например, метод equals(), сравнивающий данный объект на равенство с объектом, заданным в аргументе, и возвращающий логическое значение; метод tostring(), который преобразует содержимое объекта в строку символов и возвращает объект класса string. Класс Object входит в базовый пакет java.lang языка Java.

Опертор new

Он применяется для выделения памяти массивам и объектам. В первом случае в качестве операнда указывается тип элементов массива и количество его элементов в квадратных скобках, например: double a[] = new double[100];

Во втором случае операндом служит конструктор класса. Если конструктора в классе нет, то вызывается конструктор по умолчанию. Числовые поля класса получают нулевые значения, логические поля - значение false, ссылки - значение null. Результатом операции new будет ссылка на созданный объект. Эта ссылка может быть присвоена переменной: Dog k9 = new Dog() ; но может использоваться и непосредственно new Dog().voice();


⇐ Предыдущая страница| |Следующая страница ⇒