Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 58

Ильдар Шаукатович Хабибуллин

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.re * z.re + z.im * z.im; 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.re * z.re + z.im * z.im; 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(string[] args){ Complex z1 = new Complex(),

z2 = new Complex(1.5),

z3 = new Complex(3.6, -2.2),

z4 = new Complex(z3);

// Оставляем пустую строку. "); z1.pr();

"); z2.pr();

"); z3.pr();

"); z4.pr();

// Работает метод toString().

System.out.println(); system.out.print("z1 system.out.print("z2 system.out.print("z3 system.out.print("z4 System.out.println(z4); z2.add(z3);

'); z2.pr(); '); z2.pr(); '); z2.pr(); '); z3.pr();

system.out.print("z2 + z3 z2.div(z3);

system.out.print("z2 / z3 z2 = z2.plus(z2); system.out.print("z2 + z2 z3 = z2.slash(z1); system.out.print("z2 / z1

}

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

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

Метод main()

Всякая программа, оформленная как приложение (application), должна содержать метод с именем main. Он может быть один на все приложение или присутствовать в некоторых классах этого приложения, а может находиться и в каждом классе.

Метод main () записывается как обычный метод, может содержать любые описания и действия, но он обязательно должен быть открытым (public), статическим (static), не иметь возвращаемого значения (void). У него один параметр, которым обязательно должен быть массив строк (string [ ]). По традиции этот массив называют args, хотя имя может быть любым.

Эти особенности возникают из-за того, что метод main() вызывается автоматически исполняющей системой Java в самом начале выполнения приложения, когда еще не создан ни один объект. При вызове интерпретатора java указывается класс, где записан метод main (), с которого надо начать выполнение. Поскольку классов с методом main() может быть несколько, допустимо построить приложение с дополнительными точками входа, начиная выполнение приложения в разных ситуациях из различных классов.

Часто метод main() заносят в каждый класс с целью отладки. В этом случае в метод main () включают тесты для проверки работы всех методов класса.