Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
public static void main(String args[]) {
// Переменные a, b и с обозначают коэффициенты
// квадратного уравнения ах2 + Ьх + с = О
double а, Ь, с, х;
// решить квадратное уравнение 4x2 + х - 3 = О
а = 4;
b = 1;
с = -3 ;
// найти первое решение
х = (-b + Math.sqrt(Math.pow(b, 2) - 4 * a * с)) / (2 * a) ;
System.out.println("First solution: " + x);
// найти второе решение
x = (-b - Math.sqrt(Math.pow(b, 2) - 4 * a * c)) / (2 * a) ;
System.out.println("Second solution: " + x);
}
}
Методы pow () и sqrt () являются статическими, а следовательно, их нужно вызывать, ссылаясь на имя класса Math. Их вызов осуществляется в приведенном ниже выражении, хотя и нельзя не признать, что оно получается довольно громоздким.
х = (-b + Math.sqrt(Math.pow(b, 2) - 4 * a * с)) / (2 * a) ;
В таких выражениях приходится постоянно следить за тем, чтобы перед методами pow () и sqrt () (и другими подобными методами, например sin (), cos () и tan ()) было указано имя класса, что неудобно и чревато ошибками.
Утомительной обязанности указывать всякий раз имя класса перед статическим методом позволяет избежать статический импорт. Его применение демонстрирует приведенная ниже версия предыдущей программы.
// Применение статического импорта с целью
// упростить вызовы методов sqrt() и pow().
// Средствами статического импорта обеспечивается
// непосредственный доступ к методам sqrt() и pow().
import static java.lang.Math.sqrt;
import static java.lang.Math.pow;
class Quadratic {
public static void main(String args[]) {
// Переменные a, b и с обозначают коэффициенты
// квадратного уравнения ах2 + Ьх + с = О
double а, Ь, с, х;
// решить квадратное уравнение 4x2 + х - 3 = О
а = 4;
b = 1;
с = -3;
// найти первое решение
х = (-b + sqrt(pow(b, 2) - 4 * а * с)) / (2 * а);
System.out.println("First solution: " + x) ;
// найти второе решение
x = (-b - sqrt(pow(b, 2) - 4 * a * c)) / (2 * a) ;
System.out.println("Second solution: " + x);
}
}
В данной версии программы имена методов sqrt и pow уже не нужно указывать полностью (т.е. вместе с именем их класса). И достигается это благодаря статическому импорту обоих методов в приведенных ниже операторах, делающих оба метода непосредственно доступными.
import static java.lang.Math.sqrt;
import static java.lang.Math.pow;
После статического импорта отпадает необходимость предварять имена методов sqrt () и pow () именем их класса. В итоге выражение для решения квадратного уравнения принимает следующий вид:
х = (-b + sqrt(pow(b, 2) - 4 * а * с)) / (2 * а) ;
Теперь оно выглядит проще и воспринимается намного лучше. В Java предусмотрены две общие формы оператора import static. В первой форме, использованной в предыдущем примере, непосредственно доступным для программы делается единственное имя. Йиже приведена эта общая форма статического импорта.
import static пакет.имя_типа. имя_статического_члена;
где имятипа обозначает класс или интерфейс, содержащий требуемый статический член, на который указывает имястатического_члена. Вторая общая форма оператора статического импорта выглядит следующим образом:
import static пакет.имя_типа.*;
Если предполагается использовать несколько статических методов или полей, определенных в классе, то данная общая форма записи позволяет импортировать все эти члены одновременно. Таким образом, обеспечить непосредственный доступ к методам pow () и sqrt () в предыдущей версии программы (а также к другим статическим членам класса Math) без указания имени класса можно с помощью следующей единственной строки кода: