Классы в JAVA

Июль 28, 2011

Класс описывается в одном файле. Один файл может содержать описание нескольких классов. В этом случае лишь один из них м.б. публичным. Имя файла должно в точности соответствовать имени публичного класса.

Класс описывается конструкцией class, в теле которой описываются поля и методы, при этом методы описываются вместе с реализацией.

class A {

int i;

void m ( ) {

… } }

Класс может содержать один или несколько конструкторов, которые будут вызываться при создании объектов класса операцией new. Конструкторы отличаются от прочих методов следующим:

1. У конструктора нет возвращаемого значения.

2. Имя конструктора всегда совпадает с именем класса.

Если конструкторов несколько, они должны различаться количеством типами параметров. Какой из конструкторов будет вызван, зависит от набора параметров, указанных при создании объекта класса операцией new.

Методы, как и конструктор, могут иметь параметры и могут перегружаться. В любой нестатический метод на этапе его вызова неявным параметром передаётся ссылка на тот объект, на котором он был вызван. Обратиться к этому параметру можно с помощью ключевого слова this.

Факт расширения базового класса описывается ключевым словом extends.

При переопределении метода базового класса в подклассе бывает полезно вызвать версию этого метода, определённую в базовом классе. Явный вызов выполняется с помощью ключевого слова super. Оно используется также при необходимости вызова конструктора базового класса из конструктора подкласса. Здесь используется такая форма super(параметры);

Замечание. Если класс не содержит конструктора в явном виде, то компилятор генерирует конструктор по умолчанию, в который внедряется вызов конструктора без параметров базового класса и код инициализации всех полей в соответствии с их типом. Если в базовом классе все конструкторы с параметрами, то в производном обязательно необходимо описать конструктор явно и при этом явно вызвать один из конструкторов базового класса, который должен идти первой строкой.

Если класс Java не расширяет никакой другой класс, то считается, что он расширяет класс java.lang.Object, который является неявным предком для любого класса Java.

____________________________

Ароматные курительные смеси для тех кто хочет получать удовольствие не зависая и не подрывая здоровье. После фильма На Игле начинаешь понимать курящих людей по другому.