Программирование - это просто
Advertisement
Главная arrow C#, Delphi, VB, F#, Web и пр. arrow Java для чайников. arrow Java для чайников. Урок 4. Понятие интерфейса.
19.06.2019 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, 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
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше