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

Уроки по Java

  Все выпуски  

Уроки по Java


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


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

Рассылка №5

Основы Java. Урок 9. Начинаем изучать классы.
Основы Java. Урок 10. Наследование классов.

Полные версии уроков (с картинками) можно найти по адресам
Урок 9. Начинаем изучать классы.
Урок 10. Наследование классов.

Введение в Java. Урок 9. Начинаем изучать классы

С классом мы уже столкнулись при написании нашей первой программы на Java в уроке 3. И это не случайно - без классов на Java нельзя обойтись даже в самой простой программе. На этом же занятии и на нескольких следующих мы с вами и будем изучать классы и все, что с ними связано - наследование, конструкторы, виртуальные функции и другие мудреные вещи.

Давайте создадим новую программу. Вот ее текст:

class worker
{
    private int Age;
    public String Name;
    public void setAge(int newAge)
    {
        if(newAge>=0)
            Age=newAge;
        else
            Age=0;
    }
    public int getAge()
    {
        return Age;
    }
}
class Test{
    public static void main(String [] args){
        worker wrk=new worker();
        wrk.setAge(23);
        wrk.Name="Ivan";
        System.out.println(wrk.getAge() + "\n" + wrk.Name);
    }
}

Сохраните эту программу в файле Test.java и откомпилируйте. При запуске наша программа должны выдать две строчки: 23 и Ivan.

Что мы в нашей программе делаем? Сначала мы определяем класс worker. Делается это с помощью ключевого слова class:

class worker
{
    ...
}

В классе мы определяем две переменные - Age для возраста и Name для имени. Кроме типа переменых (int и String) мы используем еще модификаторы доступа - private (означает, что наша переменная не будет видна снаружи класса) и public (с наружи класса доступ есть). Раз переменную Age мы объявили как private, то пишем два метода в нашем классе: setAge для чтения возраста и getAge - для записи. Эти методы мы объявляем с модификатором public, это значит, что мы сможем их вызывать снаружи класса. Метод getAge просто возвращет наш возраст, а метод setAge делает небольшую проверку, и записывает в Age только положительный возраст или нуль в противном случае. Если вы раньше программировали на C++, то обратите внимание, во-первых, что модификаторы доступа ставятся перед каждой переменной и перед каждым методом и во-вторых, что после заакрывающей фигурной скобки класса точку с запятой ставить не надо.

Класс Test служит для испытания класса worker. В нем мы заводим экземпляр нашего класса:

    ...
    worker wrk=new worker();
    ...

Это мы делаем за два этапа - сначала заводим переменную типа worker (которая является ссылкой на объект), и затем определяем сам объект (с помощью оператора new).

После создания объекта мы можем вызывать его методы, обращаться к открытым переменным и т. п. Это мы и делаем в строчках

        ...
        wrk.setAge(23);
        wrk.Name="Ivan";
        System.out.println(wrk.getAge() + "\n" + wrk.Name);
        ...

С этим уроком все!

Наверх

Введение в Java. Урок 10. Наследование классов

Классы можно писать не с нуля, а взяв за основу существующий класс. В этом случае эти классы будут являтся потомком и предком друг для друга. Потомка еще называют подклассом (subclass), а предка - суперклассом (superclass). Еще одна пара названий для таких классов - это класс-потомок и класс-предок.

Если один класс есть потомок другого, то он автоматически умеет делать все то, что умеет делать класс-предок. И нам остаеться только добавить в него то, чего не было в предке или изменить те методы, работа которых в классе-предке нас не удовлетворяет. В этом одна из главных черт Объектно-ориентированного программирования - если у некоторых объектов есть много общего, то можно для них создать класс-предок, в который записать все общие черты. Отличительные же черты будут реализованы в классах-потомках.

Давайте создадим класс boss, который будет потомком для класса worker из прошлого урока. Вот текст, который введите с том же файле Test.java, в котором находится класс worker:

class worker
{
    ...
}
class boss extends worker
{
    public int NumOfWorkers; //Количество подчиненных
}

Ключевое слово extends означает, что наш новый класс boss есть потомок класса worker. Мы добавили в него только переменную NumOfWorkers, в которой будет храниться количество подчиненных. Класс же Test измените следующим образом:

    ...
    public static void main(String [] args){
        boss bigBoss=new boss();
        bigBoss.setAge(41);
        bigBoss.Name="Ivan Ivanov";
        bigBoss.NumOfWorkers=100;
        System.out.println(bigBoss.NumOfWorkers + "\n" + bigBoss.Name);
        ...

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

Наверх

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

Copyright Osco do Casco, 2002

Copyright сайт progs.biz, 2002


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

В избранное