Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Переменные, которые вы объявляете внутри класса, относятся к определенному экземпляру класса. Например, у класса worker, который мы рассматривали ранее, есть переменная Age (возраст). Понятно, что у одного работника возраст один, а у другого - другой, и эти два возраста между собой никак не связаны. С другой стороны, иногда нам нужна общая переменная на все экземпляры класса. Например, это может быть счетчик количества экземпляров класса. В этом случае такую переменную надо объявить с модификатором static. Вот пример:
class someclass
{
//Счетчик
static public int number;
//Конструктор
public someclass()
{
number++; //Увеличиваем счетчик
}
}
class Test{
public static void main(String [] args){
//Создаем два экземпляра класса someclass
someclass z1=new someclass();
someclass z2=new someclass();
System.out.println(someclass.number + "\n");
}
}
Как вы видите, переменная number объявлена как static. Это означает, что она одна на все экземпляры. В конструкторе она увеличивается на 1. Т. е. для первого экземпляра класса она будет равна 1, для второго - 2 и т. д. Что мы и проверяем в классе Test - заводим два экземпляра класса someclass, а затем выводим значение number. Естественно, что number будет равно 2. Обратите внимание, что в строке
...
System.out.println(someclass.number + "\n");
переменную number мы извлекаем не из конкретного экземплярра класса (z1, z2), а из самого класса someclass. Это возможно именно потому, что переменная number - статическая. Но, в принципе, в этом месте мы могли бы использовать и конкретный экземпляр класса - результат был бы тот же самый.
Дата публикования: 2014-11-04; Прочитано: 228 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!