дХОКНЛМШЕ ПЮАНРШ, ЙСПЯНБШЕ ОПНЕЙРШ МЮ ГЮЙЮГ, ЙНМРПНКЭМШЕ ПЮАНРШ МЮ ГЮЙЮГ

 

мЮВЕПРЮРЕКЭМЮЪ ЦЕНЛЕРПХЪ оПЮЙРХЙСЛ ОН ПЕЬЕМХЧ ГЮДЮВ цЕНЛЕРПХВЕЯЙНЕ ВЕПВЕМХЕ хМФЕМЕПМЮЪ ЦПЮТХЙЮ еяйд йПЮРМШЕ ХМРЕЦПЮКШ лЮРЕЛЮРХВЕЯЙХИ ЮМЮКХГ лЮРПХЖШ оПЕДЕКШ оПНХГБНДМШЕ бЕЙРНПМЮЪ ЮКЦЕАПЮ хМРЕЦПЮКЭМНЕ ХЯВХЯКЕМХЕ ртйо ъДЕПМЮЪ ТХГХЙЮ щКЕЙРПНЯРЮРХЙЮ лЮЦМЕРХГЛ нОРХЙЮ хМТНПЛЮЖХНММШЕ РЕУМНКНЦХХ

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

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

Начнем с обзора класса 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. Создайте экземпляры добавленных классов и продемонстрируйте использование доступных в них методов.

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