йНМЯОЕЙР ОН МЮВЕПРЮРЕКЭМНИ ЦЕНЛЕРПХХ хМФЕМЕПМЮЪ ЦПЮТХЙЮ юПУХРЕЙРСПЮ щбл хМТНПЛЮРХЙЮ Х ХМТНПЛЮЖХНММШЕ РЕУМНКНЦХХ

Предыдущий разделУровень вышеСледующий раздел

Библиотеки классов и примеры программ

Начнем с обзора класса Math, который содержит методы для работы с математическими функциями и две константы, задающие числа pi - PI и e - E.

 double 
a = Math.pow(Math.PI,2); System.out.println("PI^2="+a); 
В таблице ниже представлены некоторые методы данного класса.

МетодНазначение метода
cos(x), sin(x)
и tan(x)
Возвращают косинус, синус и тангенс числа x, заданного в радианах
atan2(y, x)Возвращает арктангенс дроби y/x, где x и y заданы в радианах и заключены в диапазоне от -PI до PI
exp(x)Возвращает число е, возведенное в степень x
log(x)Возвращает натуральный логарифм числа x>0
log10(x)Возвращает логарифм числа x>0 по основанию 10
sqrt(x)Возвращает квадратный корень из неотрицательного числа x
pow(x,y)Возвращает x в степени y

Еще одной часто используемой библиотекой является пакет классов, предназначенный для работы с файлами. Для чтения информации из файла можно использовать уже знакомый нам класс BufferedReader, a для записи строк в файл - родственный ему класс BufferedWriter.

 import java.io.*; class TestRead { public static void main(String[] args) 
throws Exception{ BufferedReader r = new BufferedReader( new FileReader("rfile.txt")); 
String str; while ((str = r.readLine()) != null) { System.out.println(str); } 
} } 
(загрузить программу и тестовый файл)

Приведем пример записи строк в файл помощью метода write. В отличии от аналогичного метода языка Ruby этот метод не добавляет символ перевода на новую строку автоматически.

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

 
import java.io.*; class TestWrite { public static void main(String[] args) throws 
Exception{ BufferedWriter w = new BufferedWriter( new FileWriter("wfile.txt")); 
int i = 10; String str1 = "Строка 1. "; String str2 = "И ее продолжение.\n"; String 
str3 = "Еще одна, содержащая число " + i; w.write(str1); w.write(str2); w.write(str3); 
w.write("\n"); w.close(); } } 

Часто возникает необходимость разбить строку, полученную из файла, на отдельные компоненты (лексемы). В языке Ruby для этой цели мы пользовались функцией split. Ее Java-эквивалент представляет класс StringTokenizer. Вот пример его использования. Создайте файл info.txt и запишите в него свои фамилию, имя и отчество, разделенные пробелами.

 import java.io.*; import java.util.StringTokenizer; 
class TestSplit { public static void main(String[] args) throws Exception { BufferedReader 
r = new BufferedReader( new FileReader("info.txt")); StringTokenizer t; t = new 
StringTokenizer(r.readLine()," "); while(t.hasMoreTokens()) { System.out.println(t.nextToken()); 
} } } 
При создании обьекта класса StringTokenizer используются два параметра: первый - это строка, которую мы собираемся обработать, а второй - разделители (в нашем случае это пробельный символ). Обратите внимание, что мы подключили дополнительную библиотеку java.util.StringTokenizer.

И, наконец, перепишем программу, иллюстрирующую наследованиe классов, на язык Java. Поместите в файл с именем Life.java код, приведенный ниже.

 class Animal { public void breath() { System.out.println("Все животные 
дышат: " +"вдохнули и выдохнули"); } } class Cat extends Animal { // Подать голос 
public void bark() { System.out.println("Mew Mew, я кошка."); } } class Bird { 
public void layEgg() { System.out.println("Яйцо снесено"); } public void fly() 
{ System.out.println("Я птица, я лечу!!!"); } } class Life { public static void 
main(String[] args) { // Создаем объекты разных классов Cat tama = new Cat(); 
tama.breath(); tama.bark(); Bird macaw = new Bird(); macaw.layEgg(); macaw.fly(); 
} } 
Можно заметить, что программа практически дублирует ее вариант на языке Ruby, с точностью до замены оператора наследования (<) на ключевое слово extends.


Задания

  1. Добавьте в программу класс Dog с методом bark.
  2. Добавьте класс Penguin для описания пингвинов, который переопределяет метод fly (пингвины не летают).
  3. Создайте экземпляры добавленных классов и продемонстрируйте использование доступных в них методов.

Предыдущий разделУровень вышеСледующий раздел

мЮВЕПРЮРЕКЭМЮЪ ЦЕНЛЕРПХЪ Х ХМФЕМЕПМЮЪ ЦПЮТХЙЮ, ОЕПЯОЕЙРХБЮ