Программирование - это просто
Advertisement
Главная
19.09.2019 г.
Главное меню
Главная
Интернет магазин
Дистанционное обучение
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Ча. Во. (FAQ)
Статьи
Услуги
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Друзья сайта
Excel-это не сложно
Все о финансах
Краткие новости
Java для чайников. Урок 4. Понятие интерфейса. Печать E-mail
Автор megabax   
09.09.2011 г.
В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

Java для чайников. Урок 4. Понятие интерфейса.

На уроке 2 вы поднакопились с таким понятием, как переменная.  На самом же деле в переменных можно хранить не только числа и строки, но так же и экземпляры объектов. Допустим, мы хотим написать программу для автоматизации предприятия торговли. И в этой программе хотим написать какой то алгоритм анализа товаров, для чего для каждого вида товаров определяем свой класс, который будет содержать свои специфические для данной товарной группы алгоритмы анализа. В данный момент мы, конечно, не будем писать эту программу, а представим, что пишем ее, что бы просто изучить понятие интерфейса и как оно поможет нам в будущим. Допустим, мы создали заготовки классов для таких видов товаров, как "обувь" и "хлеб", и написали тестовый пример:

 

class Shoe {

    public String getName(int id) {

        if(id==1) return("Shoes");

        if(id==2) return("Girl's shoes");

        if(id==3) return("Boots");

        return ("Unknow");

    }

}

 

class Bread {

    public String getName(int id) {

        if(id==1) return("White");

        if(id==2) return("Black");

        if(id==3) return("Loaf");

        return ("Unknow");

    }

}

 

public class Wares {

    public static void main(String[] args) {

        Shoe a;

        a=new Shoe();

        System.out.println(a.getName(1));

        System.out.println(a.getName(2));

        System.out.println(a.getName(3));

        System.out.println(a.getName(4));

        Bread b;

        b=new Bread();

        System.out.println(b.getName(1));

        System.out.println(b.getName(2));

        System.out.println(b.getName(3));

    }

}

 

Компилируем его, как мы это уже умеем на уроке 1 и запускаем:

 

 

А теперь посмотрите на код внимательней. Видите, для каждого класса (вида товара) мы создали свою переменную. А если мы на момент создание переменой еще не знаем, экземпляр какого класса мы будем хранить в ней? Мы же не можем присвоить переменной тип Shoe значение Bread! Но выход есть. Надо использовать интерфейс. Иными словами, создаем некоторое подобие класса, которое по сути дела полноценным классом не является. Это и есть интерфейс. Мы не может создать экземпляр интерфейса, но можем определить переменную типа интерфейс. И в этой переменной мы сможем хранить экземпляры любых классов, которые наследую данный интерфейс. Собственно говоря, интерфейс отличается от класса тем, что в нем можно объявить методы, но нельзя реализовать их. Они уже реализуются в наследуемых классах. Давайте посмотрим на примере, как это делается:

 

interface Ware {

    static final String origin="My corp";

    public String getName(int id);

}

 

class Shoe implements Ware {

    public String getName(int id) {

        if(id==1) return("Shoes");

        if(id==2) return("Girl's shoes");

        if(id==3) return("Boots");

        return ("Unknow");

    }

}

 

class Bread implements Ware {

    public String getName(int id) {

        if(id==1) return("White");

        if(id==2) return("Black");

        if(id==3) return("Loaf");

        return ("Unknow");

    }

}

 

public class Proba {

    public static void main(String[] args) {

        Ware a;

        a=new Shoe();

        System.out.println(a.getName(1));

        System.out.println(a.getName(2));

        System.out.println(a.getName(3));

        System.out.println(a.getName(4));

        a=new Bread();

        System.out.println(a.getName(1));

        System.out.println(a.getName(2));

        System.out.println(a.getName(3));

    }

}

 

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

 

 

(С) Шуравин Александр

 

 

Последнее обновление ( 09.09.2011 г. )
 
« След.   Пред. »
 
© 2019 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги