Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по Java

  Все выпуски  

Уроки по Java


Информационный Канал Subscribe.Ru

Основы Java. Уроки с сайта http://progs.biz

Рассылка №7

Основы Java. Урок 13. Модификатор final.
Основы Java. Урок 14. Статические члены класса.

Полные версии уроков (с картинками) можно найти по адресам
Урок 13. Модификатор final.
Урок 14. Статические члены класса.

Введение в Java. Урок 13. Модификатор final

Иногда мы не хотим, чтобы от некоторого созданного нами класса можно было производить классы-потомки. Например, это может понадобиться в целях безопасности.

В этом случае мы объявляем класс с ключевым словом final. Вот пример:

final class someclass
{
    //некоторые поля и методы класса
    private int somedata;
    ...
}

Теперь от нашего класса someclass нельзя делать классы-потомки. Т. е тут, например, будет ошибка:

class newclass extends someclass //Ошибка!
{
    ...
}
Наверх

Введение в Java. Урок 14. Статические члены класса

Переменные, которые вы объявляете внутри класса, относятся к определенному экземпляру класса. Например, у класса 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 - статическая. Но, в принципе, в этом месте мы могли бы использовать и конкретный экземпляр класса - результат был бы тот же самый.

Наверх
Рассылки Subscribe.Ru
Уроки по Visual C++ (MFC, платформа .NET)

Уроки по Visual C++.NET, MFC, ActiveX, COM-технологиям. Примеры программ. Каждый урок содержит информацию только по существу и расчитан на 10-20 минут. Уроки по каждой теме независимы.


Copyright Алексеев Игорь, 2002

Copyright Osco do Casco, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное