Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

    Класс Complex

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

    Листинг 2.4 длинный, но просмотрите его внимательно, при обучении языку программирования очень полезно чтение программ на этом языке. Более того, только программы и стоит читать, пояснения автора лишь мешают вникнуть в смысл действий (шутка).

    Листинг 2.4. Класс Complex

    class Complex {

       private static final double EPS = le-12; // Точность вычислений 

       private double re, im;                   // Действительная и мнимая часть

                                                // Четыре конструктора 

       Complex(double re, double im) { 

          this, re = re; this.im = im;

       }

       Complex(double re){this(re, 0.0); }

       Complex(){this(0.0, 0.0); }

       Complex(Complex z){this(z.re, z.im) ; }

          // Методы доступа 

       public double getRe(){return re;} 

       public double getlmf){return im;} 

       public Complex getZ(){return new Complex(re, im);} 

       public void setRe(double re){this.re = re;} 

       public void setlm(double im){this.im = im;} 

       public void setZ(Complex z){re = z.re; im = z.im;}

          // Модуль и аргумент комплексного числа

       public double mod(){return Math.sqrt(re * re + im * im);} 

       public double arg()(return Math.atan2(re, im);}

          // Проверка: действительное число? 

       public boolean isReal(){return Math.abs(im) < EPS;}

       public void pr(){    // Вывод на экран

          System.out.println(re + (im < 0.0 ? "" : '"+") + im + "i");

       }

          // Переопределение методов класса Object

       public boolean equals(Complex z){ 

          return Math.abs(re -'z.re) < EPS && 

                 Math.abs(im - z.im) < EPS;

       }

       public String toString(){

          return "Complex: " + re + " " + im;

       }

          // Методы, реализующие операции +=, -=, *=, /= 

       public void add(Complex z){re += z.re; im += z.im;} 

       public void sub(Complex z){re -= z.re; im —= z.im;} 

       public void mul(Complex z){

          double t = re * z.re — im * z. im; 

                im = re * z.im + im * z.re; 

                re = t;

       }

       public void div(Complex z){

          double m = z.mod();

          double t = re * z.re — im * z.im;

          im = (im * z.re — re * z.im) / m;

          re = t / m; 

       }

          // Методы, реализующие операции +, -, *, / 

       public Complex plus(Complex z){

          return new Complex(re + z.re, im + z im);

       } 

       public Complex minus(Complex z){

          return new Complex(re - z.re, im - z.im); 

       }

       public Complex asterisk(Complex z){ 

          return new Complex(

             re * z.re - im * z.im, re * z.im + im * z re);

       }

    public Complex slash(Complex z){ 

       double m = z.mod(); 

       return new Complex(

          (re * z.re - im * z.im) / m, (im * z.re - re * z.im) / m);

       }

    }

       // Проверим работу класса Complex 

    public class ComplexTest{

       public static void main(Stringf] args){ 

          Complex zl = new Complex(),

                  z2 = new Complex(1.5), 

                  z3 = new Complex(3.6, -2.2), 

                  z4 = new Complex(z3);

          System.out.printlnf);       // Оставляем пустую строку 

          System.out.print("zl = "); zl.pr(); 

          System.out.print("z2 = "); z2.pr(); 

          System.out.print("z3 = "); z3.pr(); 

          System.out.print ("z4 = "}; z4.pr(); 

          System.out.println(z4);     // Работает метод toString()

          z2.add(z3);

          System.out.print("z2 + z3 = "}; z2.pr();

          z2.div(z3);

          System.out.print("z2 / z3 = "); z2.pr(); 

          z2 = z2.plus(z2);

          System.out.print("z2 + z2 = "); z2.pr(); 

          z3 = z2.slash(zl);

          System.out.print("z2 / zl = "); z3.pr(); 

       } 

    }

    На рис. 2.3 показан вывод этой программы.

    Рис. 2.3. Вывод программы  ComplexTest

     

    -
    



    Copyright © vzlom-1.ru 2020-2021