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

Уроки по Java

  Все выпуски  

Уроки по Java


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

Java. Рассылки сайта progs.biz
Выпуск № 37
 
Начало > Java > Основы > Урок 29

Алексей Дубовцев. Microsoft .NET. Наиболее полное руководство.
Алексей Дубовцев. Microsoft .NET. Наиболее полное руководство
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 29.

Введение в Java
Урок 29. Интерфейсы

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

Интерфейсы вводятся ключевым словом interface. В объявлении же класса, реализующего некоторый интерфейс, после имени класса идет ключевое слово implements, после которого следует имя интерфейса или интерфейсов (класс может реализовывать несколько интерфейсов).

Вот примеры интерфейса для геометрической фигуры и 3-х классов конкретных герметрических фигур, реализующих этот интерфейс:

public interface IFigure {
    double pi = 3.1415;
    // Площадь.
    double square();
}
// Класс прямоугольника.
public class Rect implements IFigure {
    int width = 0;
    int height = 0;
    Rect(int width, int height){
        this.width = width;
        this.height = height;
    }
    public double square(){
        return width * height;
    }
}
// Класс треугольника.
public class Triangle implements IFigure {
    double leg1 = 0;
    double leg2 = 0;
    public Triangle(double leg1, double leg2){
        this.leg1 = leg1;
        this.leg2 = leg2;
    }
    public double square() {
        return leg1 * leg2 * 0.5;
    }
}
// Класс круга.
public class Circle implements IFigure {

    double radius;
    public Circle(double radius){
        this.radius = radius;
    }
    public double square() {
        return radius * radius * pi;
    }
}

А вот использование указанного интерфейса и классов, его реализующих:

public class Test {
    public static void main(String[] args) {
        Rect r = new Rect(2, 4);
        System.out.println("Rect: " + r.square());
        
        Triangle t = new Triangle(3, 4);
        System.out.println("Triangle: " + t.square());
        
        Circle c = new Circle(1);
        System.out.println("Circle: " + c.square());
    }
}

Обратите внимание, что каждый класс содержит метод square для вычисления площади. Этот метод обязан быть в каждом классе, так как он есть в интерфейсе, от которвх классы наследуются. Также обратите внимание, что в классе Circle мы использем константу pi из интерфейса. В других языках программирования объявление констант в интерфейсах не допускается.

Выведет программа естественно Rect: 8.0 Triangle: 6.0 и Circle: 3.1415.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2006 сайт progs.biz
© 2002-2006 Игорь Алексеев

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.javalessons
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное