Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Практическая информатика
  3. Глава 12 Программирование и интернет

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

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

Перекрёстные ссылки книги для Библиотеки классов и примеры программ

  • Операторы ветвления и циклы
  • Вверх
  • Понятие об аплетах

Book navigation

  • Содержание
  • Глава 1 Основы информатики
  • Глава 2 Операционные системы и сети
  • Глава 3 Графика на компьютере
  • Глава 4 Обработка текста
  • Глава 5 Основы языка HTML
  • Глава 6 Динамический HTML
  • Глава 7 Простейшие вычисления
  • Глава 8 Системы компьютерной алгебры
  • Глава 9 Модели и программирование
  • Глава 10 Логическое программирование
  • Глава 11 Введение в ООП
  • Глава 12 Программирование и интернет
    • От Ruby к Java
    • Переменные и типы
    • Массивы и ввод данных
    • Методы
    • Операторы ветвления и циклы
    • Библиотеки классов и примеры программ
    • Понятие об аплетах
    • Элементы языка JavaScript

Последние материалы

  • Утилита sensors
    20 hours ago
  • Сканер Rkhunter
    1 week 1 day ago
  • Программа resize2fs
    1 week 6 days ago
  • Аудиопроигрыватель QMMP
    2 weeks 5 days ago
  • Программа Timeshift
    3 weeks 4 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru