Показать сообщение отдельно
  #7 (permalink)  
Старый 26.05.2013, 23:22
Новичок на форуме
Отправить личное сообщение для Tania Посмотреть профиль Найти все сообщения от Tania
 
Регистрация: 26.05.2013
Сообщений: 7

с этим работаю первый раз ... это задали в универе, хотя я джава в глаза не видела и мы это еще не проходили ... в сети только инфу нашла
. Класс комплексных чисел
/*
* Complex.js:
* В этом файле определяется класс Complex для представления комплексных чисел.
* Вспомним, что комплексное число – это сумма вещественной и мнимой
* частей числа, и что мнимое число i – это квадратный корень из 1.
*/
/*
* Первый шаг в определении класса – это определение функции конструктора
* класса. Этот конструктор должен инициализировать все свойства
* экземпляра объекта. Это неотъемлемые "переменные состояния",
* делающие все экземпляры класса разными.
*/
function Complex(real, imaginary) {
this.x = real; // Вещественная часть числа
this.y = imaginary; // Мнимая часть числа
}
/*
* Второй шаг в определении класса – это определение методов экземпляра
* (и возможно других свойств) в объекте прототипе конструктора.
* Любые свойства, определенные в этом объекте, будут унаследованы всеми
* экземплярами класса. Обратите внимание, что методы экземпляра
* неявно работают с ключевым словом this. Для многих методов никаких
* других аргументов не требуется.
*/
// Возвращает модуль комплексного числа. Он определяется как расстояние
// на комплексной плоскости до числа от начала координат (0,0).
Complex.prototype.magnitude = function() {
return Math.sqrt(this.x*this.x + this.y*this.y);
};
// Возвращает комплексное число с противоположным знаком.
Complex.prototype.negative = function() {9.3. Объектно*ориентированный язык JavaScript 177
return new Complex( this.x, this.y);
};
// Складывает данное комплексное число с заданным и возвращает
// сумму в виде нового объекта.
Complex.prototype.add = function(that) {
return new Complex(this.x + that.x, this.y + that.y);
}
// Умножает данное комплексное число на заданное и возвращает
// произведение в виде нового объекта.
Complex.prototype.multiply = function(that) {
return new Complex(this.x * that.x this.y * that.y,
this.x * that.y + this.y * that.x);
}
// Преобразует объект Complex в строку в понятном формате.
// Вызывается, когда объект Complex используется как строка.
Complex.prototype.toString = function() {
return "{" + this.x + "," + this.y + "}";
};
// Проверяет равенство данного комплексного числа с заданным.
Complex.prototype.equals = function(that) {
return this.x == that.x && this.y == that.y;
}
// Возвращает вещественную часть комплексного числа.
// Эта функция вызывается, когда объект Complex рассматривается
// как числовое значение.
Complex.prototype.valueOf = function() { return this.x; }
/*
* Третий шаг в определении класса – это определение методов класса,
* констант и других необходимых свойств класса как свойств самой
* функции конструктора (а не как свойств объекта прототипа
* конструктора). Обратите внимание, что методы класса не используют
* ключевое слово this, они работают только со своими аргументами.
*/
// Складывает два комплексных числа и возвращает результат.
Complex.add = function (a, b) {
return new Complex(a.x + b.x, a.y + b.y);
};
// Умножает два комплексных числа и возвращает полученное произведение.
Complex.multiply = function(a, b) {
return new Complex(a.x * b.x a.y * b.y,
a.x * b.y + a.y * b.x);
};
// Несколько предопределенных комплексных чисел.
// Они определяются как свойства класса, в котором могут использоваться как "константы".
// (Хотя в JavaScript невозможно определить свойства, доступные только для чтения.)
Complex.ZERO = new Complex(0,0);
Complex.ONE = new Complex(1,0);
Complex.I = new Complex(0,1);
Ответить с цитированием