Java сложение комплексных чисел

Русские Блоги

Краткое описание обучения Java: (магическое использование конструктора) для сложения, вычитания, умножения и деления комплексных чисел

В классе комплексных чисел сложение, вычитание, умножение и деление реализуются двумя способами. Например, a = b + c и a + = b;

В этом множественном классе используется статический модификатор, так что модифицированный метод может быть напрямую вызван оператором точки с использованием имени класса. Может решить проблему без вызова объекта. Вызовите напрямую с именем класса, передав два параметра.

Вычитание осуществляется путем сложения, а деление — путем умножения.

При делении, если делитель равен 0, будет выдано исключение.

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

И реализовал методы получения и установки, чтобы получить и ввести начальные значения.

Перегруженный метод toString, пользовательская форма вывода.

Можно сложить, вычесть, умножить и разделить комплексные числа. Поскольку существуют такие методы, как a + = b, можно реализовать не только операцию двух комплексных чисел, но и операции непрерывного сложения и умножения.

Конкретный код выглядит следующим образом:

/* * @auther-yc * 2018/9/23 */ package com.mec.complex; public class Complex < // Определяем две глобальные переменные, которые представляют действительные и мнимые части комплексного числа; private double row; private double col; // Нет построения параметров public Complex() < // Используем метод this () для вызова конструкции с двойным параметром, чтобы начальное значение по умолчанию было 0.0 + 0.0i; this(0.0, 0.0); >public Complex(double row) < this(row, 0.0); >public Complex(Complex complex) < this(complex.row, complex.col); >public Complex(double row, double col) < this.setRow(row); this.setCol(col); >// Реализуем серию методов получения и установки; public double getRow() < return row; >public void setRow(double row) < this.row = row; >public double getCol() < return col; >public void setCol(double col) < this.col = col; >// Этот метод может получить противоположность комплексного числа, так что вы можете использовать сложение для достижения вычитания. public static Complex opposite(Complex complex) < complex.row = - complex.row; complex.col = - complex.col; return complex; >// Этот метод может принимать обратную величину комплексного числа, так что вы можете использовать умножение для достижения деления. public static Complex reciprocal(Complex complex) < double row = (complex.row) / (complex.row * complex.row + complex.col * complex.col); double col = (-complex.col) / (complex.row * complex.row + complex.col * complex.col); return new Complex(row, col); >// a = b + c; метод определен как статический, вы можете вызвать его напрямую, используя имя класса, а затем вывести результат. Нет необходимости заново определять комплексное число, чтобы получить его сумму; // И этот метод по сути использует один из параметров для вызова добавления одного параметра. public static Complex add(Complex one, Complex another) < return new Complex(one).add(another); >//a += b; public Complex add(Complex one) < this.row += one.row; this.col += one.col; return this; >//a = b - c; public static Complex sub(Complex one, Complex another) < return new Complex(one).add(opposite(another)); >public Complex sub(Complex complex) < return this.add(opposite(complex)); >//a = b * c; public static Complex mul(Complex one, Complex another) < return new Complex(one).mul(another); >//a *= b; public Complex mul(Complex complex) < double row = this.row; this.row = this.row * complex.row - this.col * complex.col; this.col = row * complex.col + this.col * complex.row; return this; >// a / = b; здесь выдается пользовательское исключение «Ошибка деления на ноль». Когда входящий параметр используется как операция делителя, будет сообщено об исключении! public Complex div(Complex complex) throws DivideZeroException < if((Math.abs(complex.row) < 1e-6) && (Math.abs(complex.col) < 1e-6)) < генерировать новое DivideZeroException («Ошибка деления на ноль»); >return new Complex(this.mul(reciprocal(complex))); > //a = b / c; public static Complex div(Complex one, Complex another) throws DivideZeroException < if((Math.abs(another.row) < 1e-6) && (Math.abs(another.col) < 1e-6)) < генерировать новое DivideZeroException («Ошибка деления на ноль»); >return new Complex(one).mul(reciprocal(another)); > // Перегрузка метода toString, может быть выведена в произвольном формате; @Override public String toString() < return "(" + row + ", " + col + ")"; >> /* * Исключительный класс * @auther-yc * 2018/9/23 */ package com.mec.complex; public class DivideZeroException extends Exception < private static final long serialVersionUID = -917710262683840175L; public DivideZeroException() < >public DivideZeroException(String arg0, Throwable arg1, boolean arg2, boolean arg3) < super(arg0, arg1, arg2, arg3); >public DivideZeroException(String arg0, Throwable arg1) < super(arg0, arg1); >public DivideZeroException(String arg0) < super(arg0); >public DivideZeroException(Throwable arg0) < super(arg0); >> 

Источник

Русские Блоги

Сложение, вычитание, умножение и деление комплексных чисел с Java

Сложение, вычитание, умножение и деление комплексных чисел с Java

1. Общие сведения

Учитель организовал несколько вопросов по Java-программированию в классе, это один из них

Разработайте класс Complex для инкапсуляции следующих операций над комплексными числами:
(1) конструктор с параметрами для инициализации множественных элементов
(2) Конструктор без параметров. Конструктор параметра генерации вызывается для завершения инициализации множественных членов.
(3) Статический метод и метод экземпляра, которые реализуют сложение, вычитание двух комплексных чисел.
(4) В сложной стандартной форме: x + iy выводит это комплексное число
(5) Напишите две функции для получения действительной части комплексного числа: getReal (), getImage () и мнимую часть.

Оригинальный вопрос учителя такой же, как и выше, и он сам добавил сложение, вычитание, умножение и деление двух комплексных чисел, используя метод примера. Если вы хотите написать статический метод, то есть метод класса, добавьте статический и измените его в соответствии с соответствующими изменениями. Разница в том, что методы экземпляра могут вызывать как переменные экземпляра и методы экземпляра, так и переменные класса и методы класса. Методы класса могут вызывать только переменные класса и методы класса. Из-за времени завтра уроки будут, поэтому я покажу пример.

3. Конкретный код и объяснение

package Four; /** * @author Kun Sun * @Date: 2013.10.15 */ import java.util.Scanner; открытый класс Complex private void Complex (double real, double image) Complex (double real, double image) public double getReal() < return real; >public void setReal(double real) < this.real = real; >public double getImage() < return image; >public void setImage(double image) < this.image = image; >Complex add (Комплекс а) Complex sub (Complex a) Complex mul (Complex a) Complex div (Комплекс а) public void print () 0)< System.out.println(real + " + " + image + "i"); >else if(image < 0)< System.out.println(real + "" + image + "i"); >else < System.out.println(real); >> > 
package Four; /** * @author Kun Sun * @Date: 2013.10.15 */ public class MainClass > 

4. Снимок экрана с результатами теста

Источник

Читайте также:  How to call class in java
Оцените статью