Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Java. объектно-ориентированное программирование с интерфейсами


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

Добавим два варианта реализации.

/* DblNumber.java ---------------------------------------------------- (8< * * Реализация типа INumber через double. * * -------------------------------------------------------------------- */ class DblNumber implements INumber { double d; public DblNumber(double ip) { d = ip; } public void setValue(String s) { d = (new Double(s)).doubleValue(); } public INumber add(INumber n) { d += (new Double(n.toString())).doubleValue(); return this; } public INumber mul(INumber n) { d *= (new Double(n.toString())).doubleValue(); return this; } public String toString() { return (new Double(d)).toString(); } } // (8<

/* IntNumber.java ---------------------------------------------------- (8< * * Реализация типа INumber через int. * * -------------------------------------------------------------------- */ class IntNumber implements INumber { int i; public IntNumber(int v) { i = v; } public void setValue(String s) { String sw=s; int l = sw.indexOf('.'); if (l > 0) sw = sw.substring(0, l); i = (new Integer(sw)).intValue(); } public INumber add(INumber n) { String sw = n.toString(); int l = sw.indexOf('.'); if (l > 0) sw = sw.substring(0, l); i += (new Integer(sw)).intValue(); return this; } public INumber mul(INumber n) { String sw = n.toString(); int l = sw.indexOf('.'); if (l > 0) sw = sw.substring(0, l); i *= (new Integer(sw)).intValue(); return this; } public String toString() { return (new Integer(i)).toString(); } } // (8<Проверим результат:

/* TestNumber.java --------------------------------------------------- (8< * * Тестирование типа INumber. * * -------------------------------------------------------------------- */ public class TestNumber { public static void main(String[] args) { INumber i1 = new IntNumber(22); INumber i2 = new DblNumber(11.2); INumber i3 = new DblNumber(3.4); CalcNumber cn = new CalcNumber(); cn.calculation(i1, i2, i3); } } // (8<

Другие статьи по теме:

- Java-приложение: заглянем внутрь
- Java: управление ресурсами
- Java: русские буквы и не только...
- почтовая программа - своими руками!
- революция java


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами