Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Объектно-ориентированное программирование. Базовые и утилитные классы API JAVA

Содержание

План лекцииПакет java.lang и его структураКласс Object и его методыКласс ClassИнтерфейс ComparableКлассы-обертки примитивных типовКласс MathКлассы работы со строкамиПакет java.util и его структура
Базовые и утилитные классы  API JAVAЗанятие 6 План лекцииПакет java.lang и его структураКласс Object и его методыКласс ClassИнтерфейс ComparableКлассы-обертки Пакет java.langБазовые классыObjectClassОбертки примитивных типовMathКлассы работы со строкамиКлассы управления процессами и потокамиСредства Класс ObjectЯвляется суперклассом для всех классов (включая массивы)Переменная этого типа может ссылаться Методы класса ObjectПолучение строкового представления объекта  String toString()Получение ссылки на описание Клонирование объектовСчитается, что результатом клонирования является копия объектаМассивы поддерживают операцию клонированияВ классе Простое клонирование объектовКласс должен переопределять метод clone()Класс должен реализовывать интерфейс-маркер CloneableРезультат клонирования Особенности клонированияint[][] a = {{1, 2, 3}, {4, 5,6}};int[][] b = (int[][]) Глубокое клонирование объектовПростого клонирования может быть недостаточно, если объект содержит ссылки на Равенство объектовПростого сравнения ссылок недостаточно для сравнения содержимого объектовДля сравнения объектов по Равенство объектовМетод equals(...) должен проверять эквивалентность объектов с точки зрения бизнес-логикиОтношение, задаваемое Хэш-код объектаМетод int hashCode() предназначен для получения  хэш-кода – числа, используемого Класс ClassЯвляется метаклассом для всех классов JavaЭкземпляры содержат описания классов, загружаемых JVMНе Интерфейс ComparableРеализация интерфейса означает введение отношения порядка на множестве объектов классаМетод compareTo()a.compareTo(b) Классы-обертки примитивных типовЗначения примитивных типов не могут быть непосредственно использованы в контексте, Классы-обертки  примитивных типовBooleanByteCharacterDoubleFloatIntegerLongNumberShortVoid Наполнение классов-обертокКонстанты типов Integer.MAX_VALUE, Double.NaN Конструкторы: по значению и строке Float(float value), Задачи классов-оберток примитивных типовСсылочное представление значений примитивных типовХранение вспомогательных функций для работы Класс MathПредназначен для выполнения простых математических операцийНе имеет  явного конструктораЯвляется final-классомВсе Наполнение класса MathКонстанты E и PIФункции взятия модуля abs()Функции максимума и минимума Хранение строкbyte [] Массив байт кодовchar [] Массив Unicode-символовString	Неизменяемая строкаStringBuffer Изменяемая строка Работа со строками Класс StringЗначение объекта класса String не может быть изменено Наполнение класса StringСтроковое представление valueOf(), copyValueOf()Преобразование типов getBytes(), getChars(), toCharArray(), toString()Сравнение compareTo(), Пакет java.util.regexКласс Pattern Реализует шаблоны регулярных выражений. Позволяет составлять сложные шаблоны и Работа со строками Класс StringBufferРеализует методы модификации строки без порождения нового объектаРеализует Наполнение класса StringBufferДобавление фрагментов append(...), insert(...)Поиск вхождений indexOf(), lastIndexOf()Извлечение фрагментов charAt(), getChars(), Конкатенация строкSystem.out.println( Пакет java.utilКлассы для работы со временемКлассы для работы с локализациейКлассы для работы java.util.Arrays	Содержит статические методы для работы с массивамиПредставление массива списком List asList(Object[] a)Поиск Классы работы со временемDate Отражает дату и время с точностью до миллисекунд. Классы для работы с локализациейLocale Содержит константы и методы для работы с java.util.RandomЭкземпляр класса является отдельным генератором псевдослучайных чисел (ГПСЧ)Различные ГПСЧ позволяют формировать некоррелированные Спасибо за внимание! Дополнительные источникиАрнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг,
Слайды презентации

Слайд 2 План лекции
Пакет java.lang и его структура
Класс Object и

План лекцииПакет java.lang и его структураКласс Object и его методыКласс ClassИнтерфейс

его методы
Класс Class
Интерфейс Comparable
Классы-обертки примитивных типов
Класс Math
Классы работы со

строками
Пакет java.util и его структура

Слайд 3 Пакет java.lang
Базовые классы
Object
Class
Обертки примитивных типов
Math
Классы работы со строками
Классы

Пакет java.langБазовые классыObjectClassОбертки примитивных типовMathКлассы работы со строкамиКлассы управления процессами и

управления процессами и потоками
Средства рефлексии
И т.д.
Базовые интерфейсы
Cloneable
Comparable
Runnable
И т.д.
Основные исключения
Exception
Error
RuntimeException
SecutityException
И

т.д.

Этот пакет импортируется по умолчанию


Слайд 4 Класс Object
Является суперклассом для всех классов (включая массивы)

Переменная

Класс ObjectЯвляется суперклассом для всех классов (включая массивы)Переменная этого типа может

этого типа может ссылаться на любой объект (но не

на переменную примитивного типа)

Его методы наследуются всеми классами

Реализует базовые операции с объектами

Слайд 5 Методы класса Object
Получение строкового представления объекта String toString()
Получение

Методы класса ObjectПолучение строкового представления объекта String toString()Получение ссылки на описание

ссылки на описание класса объекта final Class getClass()
Клонирование

объекта (получение копии) protected Object clone()
Проверка равенства объектов boolean equals(Object obj)
Получение хэш-кода объекта int hashCode()
Метод завершения работы с объектом protected void finalize()
Методы обслуживания блокировок в многопоточных приложениях void wait(...), void notify(), void notifyAll()

Слайд 6 Клонирование объектов
Считается, что результатом клонирования является копия объекта
Массивы

Клонирование объектовСчитается, что результатом клонирования является копия объектаМассивы поддерживают операцию клонированияВ

поддерживают операцию клонирования


В классе Object метод clone() является защищенным
Метод clone()

реализуется в конкретном классе
Никто не гарантирует того, что результатом его выполнения будет копия объекта, и даже того, что новый объект будет того же класса
Однако существует ряд соглашений, регламентирующих реализацию метода clone()

int[] arrayCopy = (int []) array.clone();


Слайд 7 Простое клонирование объектов
Класс должен переопределять метод clone()
Класс должен

Простое клонирование объектовКласс должен переопределять метод clone()Класс должен реализовывать интерфейс-маркер CloneableРезультат

реализовывать интерфейс-маркер Cloneable
Результат клонирования должен быть получен вызовом super.clone()
Результатом

работы метода Object.clone() является точная копия объекта

public Object clone() {
Object result = null;
try {
result = super.clone();
} catch (CloneNotSupportedException ex) {
throw new InternalError();
}
return result;
}


Слайд 8 Особенности клонирования
int[][] a = {{1, 2, 3}, {4,

Особенности клонированияint[][] a = {{1, 2, 3}, {4, 5,6}};int[][] b =

5,6}};
int[][] b = (int[][]) a.clone();
System.out.println(a[0][0]);
b[0][0] = 9;
System.out.println(a[0][0]);
1
9
В

результате клонирования скопировался только сам объект a, но не объект, на которые он ссылался

При использовании результатов клонирования необходимо явное приведение типа
Начиная с Java5 для массивов можно не выполнять явное приведение типа, но только для массивов


Слайд 9 Глубокое клонирование объектов
Простого клонирования может быть недостаточно, если

Глубокое клонирование объектовПростого клонирования может быть недостаточно, если объект содержит ссылки

объект содержит ссылки на агрегированные объекты

В этом случае после

процедуры простого клонирования необходимо создать и их копии тоже

public Object clone() {
Object result = null;
try {
result = super.clone();
result.a = (...) a.clone();
...
} catch (CloneNotSupportedException ex) { }
return result;
}


Слайд 10 Равенство объектов
Простого сравнения ссылок недостаточно для сравнения содержимого

Равенство объектовПростого сравнения ссылок недостаточно для сравнения содержимого объектовДля сравнения объектов

объектов

Для сравнения объектов по их содержимому применяется метод equals(Object

obj)

В классе Object метод реализован таким образом, что возвращает true только при сравнении с самим объектом

Конкретный класс должен переопределять метод equals(...)

Слайд 11 Равенство объектов
Метод equals(...) должен проверять эквивалентность объектов с

Равенство объектовМетод equals(...) должен проверять эквивалентность объектов с точки зрения бизнес-логикиОтношение,

точки зрения бизнес-логики

Отношение, задаваемое на множестве объектов этим методом,

должно обладать следующими свойствами:
рефлективность
симметричность
транзитивность
консистентность
сравнение с null должно приводить к результату false

Слайд 12 Хэш-код объекта
Метод int hashCode() предназначен для получения хэш-кода

Хэш-код объектаМетод int hashCode() предназначен для получения хэш-кода – числа, используемого

– числа, используемого для быстрого сравнения объектов
Если объект не

изменял свое состояние, то значение хэш-кода не должно изменяться
Если два объекта эквивалентны (с точки зрения метода equals()), то хэш-коды объектов должны быть одинаковыми
Если хэш-коды объектов одинаковы, то это еще не значит, что объекты эквивалентны
Изменение реализации в классе метода equals() влечет за собой изменение реализации метода hashCode()

Слайд 13 Класс Class
Является метаклассом для всех классов Java
Экземпляры содержат

Класс ClassЯвляется метаклассом для всех классов JavaЭкземпляры содержат описания классов, загружаемых

описания классов, загружаемых JVM
Не имеет доступного конструктора
Содержит методы для

работы с классами и их методами
Лежит в основе т.н. «рефлексии»

Слайд 14 Интерфейс Comparable
Реализация интерфейса означает введение отношения порядка на

Интерфейс ComparableРеализация интерфейса означает введение отношения порядка на множестве объектов классаМетод

множестве объектов класса
Метод compareTo()
a.compareTo(b) < 0 a

b
a.compareTo(b) > 0 a > b
a.compareTo(b) = 0 a = b
Настоятельно рекомендуется согласовывать работу методов compareTo() и equals()

Слайд 15 Классы-обертки примитивных типов
Значения примитивных типов не могут быть непосредственно

Классы-обертки примитивных типовЗначения примитивных типов не могут быть непосредственно использованы в

использованы в контексте, где требуется ссылка

Ссылочное представление значений примитивных

типов является основной задачей т.н. классов-оберток

Экземпляр такого класса хранит внутри значение примитивного типа и предоставляет доступ к этому значению

Слайд 16 Классы-обертки примитивных типов
Boolean

Byte

Character

Double

Float
Integer

Long

Number

Short

Void

Классы-обертки примитивных типовBooleanByteCharacterDoubleFloatIntegerLongNumberShortVoid

Слайд 17 Наполнение классов-оберток
Константы типов Integer.MAX_VALUE, Double.NaN
Конструкторы: по значению и строке Float(float

Наполнение классов-обертокКонстанты типов Integer.MAX_VALUE, Double.NaN Конструкторы: по значению и строке Float(float

value), Float(String s)
Методы получения значения Boolean.booleanValue(), Float.floatValue()
Методы преобразования типов Integer.parseInt(String s),

Float.byteValue()
Методы проверки состояния и вида значения compareTo(...), Double.isInfinite()
Специальные методы, обусловленные спецификой типа Double.longBitsToDouble(...), Integer.toHexString()

Слайд 18 Задачи классов-оберток примитивных типов
Ссылочное представление значений примитивных типов

Хранение

Задачи классов-оберток примитивных типовСсылочное представление значений примитивных типовХранение вспомогательных функций для

вспомогательных функций для работы со значениями примитивных типов

Представление примитивных

типов и их значений в механизмах рефлексии

Слайд 19 Класс Math
Предназначен для выполнения простых математических операций
Не имеет

Класс MathПредназначен для выполнения простых математических операцийНе имеет явного конструктораЯвляется final-классомВсе

явного конструктора
Является final-классом
Все методы являются статическими
Не гарантирует повторяемости результатов

на различных платформах (в отличие от класса StrictMath)

Слайд 20 Наполнение класса Math
Константы E и PI
Функции взятия модуля

Наполнение класса MathКонстанты E и PIФункции взятия модуля abs()Функции максимума и

abs()
Функции максимума и минимума max(), min()
Функции округления round(), rint()
Функции

ближайшего целого ceil(), floor()
Тригонометрические функции sin(), cos(), tan(), asin(), acos(), atan()
Функции перевода toDegrees(), toRadians(), atan2()
Функции степени pow(), exp(), log(), sqrt()
Случайное значение random() (см. класс java.util.Random)

Слайд 21 Хранение строк
byte [] Массив байт кодов

char [] Массив Unicode-символов

String
Неизменяемая строка

StringBuffer Изменяемая

Хранение строкbyte [] Массив байт кодовchar [] Массив Unicode-символовString	Неизменяемая строкаStringBuffer Изменяемая строка

строка


Слайд 22 Работа со строками Класс String
Значение объекта класса String не

Работа со строками Класс StringЗначение объекта класса String не может быть

может быть изменено без порождения нового объекта
Реализует операции для

строки в целом
Экземпляры этого класса можно создавать без ключевого слова new
Каждый строковый литерал порождает экземпляр String
Значение любого типа может быть приведено к строке

Слайд 23 Наполнение класса String
Строковое представление valueOf(), copyValueOf()
Преобразование типов getBytes(), getChars(), toCharArray(),

Наполнение класса StringСтроковое представление valueOf(), copyValueOf()Преобразование типов getBytes(), getChars(), toCharArray(), toString()Сравнение

toString()
Сравнение compareTo(), compareToIgnoreCase(), contentEquals(), equals(), equalsIgnoreCase(), intern()
Выделение элементов charAt(), substring(), split()
Операции

над всей строкой concat(), replace(), replaceAll(), replaceFirst(), toLowerCase(), toUpperCase(), trim()
Проверка содержимого строки endsWith(), indexOf(), lastIndexOf(), length(), matches(), regionMatches(), startsWith()

Слайд 24 Пакет java.util.regex
Класс Pattern Реализует шаблоны регулярных выражений. Позволяет составлять

Пакет java.util.regexКласс Pattern Реализует шаблоны регулярных выражений. Позволяет составлять сложные шаблоны

сложные шаблоны и разделять строки на элементы
Класс Matcher Реализует поиск

элементов, соответствующих шаблону, в строках и проверку строк на соответствие шаблону

У вас есть проблема. Вы решили использовать регулярные выражения чтобы её решить. Теперь у вас две проблемы.


Слайд 25 Работа со строками Класс StringBuffer
Реализует методы модификации строки без

Работа со строками Класс StringBufferРеализует методы модификации строки без порождения нового

порождения нового объекта
Реализует операции с элементами строки по отдельности
Используется

по умолчанию при конкатенации строк
Для хранения строк использует буфер переменного объема

Слайд 26 Наполнение класса StringBuffer
Добавление фрагментов append(...), insert(...)
Поиск вхождений indexOf(), lastIndexOf()
Извлечение фрагментов charAt(),

Наполнение класса StringBufferДобавление фрагментов append(...), insert(...)Поиск вхождений indexOf(), lastIndexOf()Извлечение фрагментов charAt(),

getChars(), reverse(), substring()
Модификация строки delete(), deleteCharAt(), replace(), setCharAt(), setLength()
Состояние буфера length(),

capacity(), ensureCapacity(), trimToSize()

Слайд 28 Пакет java.util
Классы для работы со временем
Классы для работы

Пакет java.utilКлассы для работы со временемКлассы для работы с локализациейКлассы для

с локализацией
Классы для работы с массивами
Классы и интерфейсы коллекций
Классы

и интерфейсы для создания многопоточных приложений
Прочие вспомогательные классы и интерфейсы

Слайд 29 java.util.Arrays
Содержит статические методы для работы с массивами
Представление массива

java.util.Arrays	Содержит статические методы для работы с массивамиПредставление массива списком List asList(Object[]

списком List asList(Object[] a)
Поиск элемента в массиве int binarySearch(…[] a, …

key)
Сравнение массивов по элементам boolean equals(…[] a1, …[] a2)
Заполнение массива элементами fill(…[] a, int from, int to, … val)
Сортировка массива sort(…[] a, int from, int to)

Слайд 30 Классы работы со временем
Date Отражает дату и время с

Классы работы со временемDate Отражает дату и время с точностью до

точностью до миллисекунд. Не рекомендуется к использованию
Calendar и сопутствующие

Содержит константы и методы для работы с датой и временем с учетом особенностей локализации
Timer Позволяет создавать задания для более позднего запуска (с использованием потоков инструкций)

Слайд 31 Классы для работы с локализацией
Locale Содержит константы и методы

Классы для работы с локализациейLocale Содержит константы и методы для работы

для работы с языками и особенностями регионов
TimeZone Содержит методы для

работы с часовыми поясами
SimpleTimeZone Реализует TimeZone для Григорианского календаря

Слайд 32 java.util.Random
Экземпляр класса является отдельным генератором псевдослучайных чисел (ГПСЧ)
Различные

java.util.RandomЭкземпляр класса является отдельным генератором псевдослучайных чисел (ГПСЧ)Различные ГПСЧ позволяют формировать

ГПСЧ позволяют формировать некоррелированные последовательности
«Основание» имеет размерность 48bit
Методы получения

ПСЧ: nextBoolean(), nextByte(), nextDouble(), nextFloat(), nextInt(), nextLong(), nextGaussian()
Метод настройки setSeed(long seed)

Слайд 33 Спасибо за внимание!

Спасибо за внимание!

  • Имя файла: obektno-orientirovannoe-programmirovanie-bazovye-i-utilitnye-klassy-api-java.pptx
  • Количество просмотров: 136
  • Количество скачиваний: 0