Презентация Java. SE. 01. Java fundamentals. Введение в язык java. Типы данных, переменные, операторы. Простейшие классы и объекты онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Java. SE. 01. Java fundamentals. Введение в язык java. Типы данных, переменные, операторы. Простейшие классы и объекты абсолютно бесплатно. Урок-презентация на эту тему содержит всего 236 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Java. SE. 01. Java fundamentals. Введение в язык java. Типы данных, переменные, операторы. Простейшие классы и объекты
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:236 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.37 MB
- Просмотров:187
- Скачиваний:1
- Автор:неизвестен
Слайды и текст к этой презентации:
№4 слайд
Содержание слайда: Введение в язык Java. Язык программирования Java
Java - это объектно-ориентированный, платформенно-независимый язык программирования, используемый для разработки информационных систем, работающих в сети Internet.
Объектно-ориентированный язык Java, разработанный в Sun Microsystems, предназначен для создания переносимых на различные платформы и операционные системы программ. Язык Java нашел широкое применение в Интернет-приложениях, добавив на статические и клиентские Web-страницы динамическую графику, улучшив интерфейсы и реализовав вычислительные возможности. Но объектно-ориентированная парадигма и кроссплатформенность привели к тому, что уже буквально через несколько лет после своего создания язык практически покинул клиентские страницы и перебрался на сервера. На стороне клиента его место занял язык JavaScript.
№5 слайд
Содержание слайда: Введение в язык Java. Использование памяти
В Java все объекты программы расположены в динамической памяти (heap) и доступны по объектным ссылкам, которые в свою очередь хранятся в стеке. Это решение исключило непосредственный доступ к памяти, но усложнило работу с элементами массивов.
Необходимо отметить, что объектные ссылки языка Java содержат информацию о классе объектов, на которые они ссылаются, так что объектные ссылки - это не указатели, а дескрипторы объектов. Наличие дескрипторов позволяет JVM выполнять проверку совместимости типов на фазе интерпретации кода, генерируя исключение в случае ошибки.
№10 слайд
Содержание слайда: Введение в язык Java. Компиляция и запуск приложения из командной строки
После успешной компиляции создастся файл Console.class. Если такой файл не создался, то, значит, код содержит ошибки, которые необходимо устранить и ещё раз скомпилировать программу.
Для запуска программы их консоли выполните команду java.exe Console
№12 слайд
Содержание слайда: Введение в язык Java. Консоль. Простейшие примеры
Взаимодействие с консолью с помощью потока System.in представляет собой один из простейших способов передачи информации в приложение.
В следующем примере рассматривается ввод информации в виде символа из потока ввода, связанного с консолью, и последующего вывода на консоль символа и его числового кода.
№21 слайд
Содержание слайда: Типы данных, переменные, операторы. Примитивные и ссылочные типы
Язык Java является объектно-ориентированным, но существуют типы данных (простые/примитивные), не являющиеся объектами.
Фактор производительности
Простые типы делятся на 4 группы:
целые: int, byte, short, long,
числа с плавающей точкой: float, double
символы: char
логические: boolean
Введение в синтаксис языка классов позволяет создавать свои типы, получившие название ссылочных.
№25 слайд
Содержание слайда: Типы данных, переменные, операторы. Переменные. Объявление переменных
Характеристики.
Основное место для хранения данных
Должны быть явно объявлены
Каждая переменная имеет тип, идентификатор и область видимости
Определяются для класса, для экземпляра и внутри метода
Объявление переменных.
Может быть объявлена в любом месте блока кода
Должна быть объявлена перед использованием
Обычно переменные объявляются в начале блока
Область видимости определяется блоком
Необходимо инициализировать переменные перед использованием
Переменные простых типов инициализируются автоматически
№27 слайд
Содержание слайда: Типы данных, переменные, операторы. Переменные. Объявление переменных
Java не позволяет присваивать переменной значение более длинного типа, если только это не константы. Исключение составляют операторы инкремента, декремента и операторы +=, =, *=, /=.
В именах переменных не могут использоваться символы арифметических и логических операторов, а также символ ‘#’. Применение символов ‘$’ и ‘_’ допустимо, в том числе и в первой позиции имени.
№31 слайд
Содержание слайда: Типы данных, переменные, операторы. Преобразования типов
Java запрещает смешивать в выражениях величины разных типов, однако при числовых операциях такое часто бывает необходимо. Различают повышающее (разрешенное, неявное) преобразование и понижающее приведение типа.
Повышающее преобразование осуществляется автоматически по следующему правилу. Серыми стрелками обозначены преобразования, при которых может произойти потеря точности.
№32 слайд
Содержание слайда: Типы данных, переменные, операторы. Расширяющее и сужающее преобразование типов
Расширяющее преобразование. Результирующий тип имеет больший диапазон значений, чем исходный тип:
Сужающее преобразование. . Результирующий тип имеет меньший диапазон значений, чем исходный тип.
№35 слайд
Содержание слайда: Типы данных, переменные, операторы. Классы-оболочки
Кроме базовых типов данных широко используются соответствующие классы (wrapper классы): Boolean, Character, Integer, Byte, Short, Long, Float, Double. Объекты этих классов могут хранить те же значения, что и соответствующие им базовые типы.
Объекты этих классов представляют ссылки на участки динамической памяти, в которой хранятся их значения и являются классами оболочками для значений базовых типов. Указанные классы являются наследниками абстрактного класса Number и реализуют интерфейс Comparable, представляющий собой интерфейс для работы со всеми скалярными типами.
Объекты этих классов являются константными
№41 слайд
Содержание слайда: Типы данных, переменные, операторы. Классы-оболочки
Класс Character не наследуется от Number, так как ему нет необходимости поддерживать интерфейс классов, предназначенных для хранения результатов арифметических операций. Класс Character имеет целый ряд специфических методов для обработки символьной информации. У этого класса, в отличие от других классов оболочек, не существует конструктора с параметром типа String.
digit(char ch, in radix) - переводит цифру ch системы счисления с основанием radix в ее числовое значение типа int.
forDigit(int digit, int radix) - производит обратное преобразование целого числа digit в соответствующую цифру (тип char) в системе счисления с основанием radix.
№42 слайд
Содержание слайда: Типы данных, переменные, операторы. Классы-оболочки
Основание системы счисления должно находиться в диапазоне от Character.MIN_RADIX до Character.MAX_RADIX.
Метод toString() переводит символ, содержащийся в классе, в строку с тем же символом.
Статические методы toLowerCase(), touppercase(), toTitieCase() возвращают символ, содержащийся в классе, в указанном регистре. Последний из этих методов предназначен для правильного перевода в верхний регистр четырех кодов Unicode, не выражающихся одним символом.
Множество статических логических методов проверяют различные характеристики символа, переданного в качестве аргумента метода.
№47 слайд
Содержание слайда: Типы данных, переменные, операторы. Упаковка/распаковка
В версии 5.0 введен процесс автоматической инкапсуляции данных базовых типов в соответствующие объекты оболочки и обратно (автоупаковка). При этом нет необходимости в создании соответствующего объекта с использованием оператора new.
Автораспаковка – процесс извлечения из объекта-оболочки значения базового типа. Вызовы таких методов, как intValue(), doubleValue() становятся излишними.
№49 слайд
Содержание слайда: Типы данных, переменные, операторы. Упаковка/распаковка
Несмотря на то, что значения базовых типов могут быть присвоены объектам классов-оболочек, сравнение объектов между собой происходит по ссылкам.
Метод equals() сравнивает не значения объектных ссылок, а значения объектов, на которые установлены эти ссылки. Поэтому вызов oa.equals(ob) возвращает значение true.
Значение базового типа может быть передано в метод equals(). Однако ссылка на базовый тип не может вызывать методы.
№51 слайд
Содержание слайда: Типы данных, переменные, операторы. Упаковка/распаковка
При инициализации объекта класса-оболочки значением базового типа преобразование типов необходимо указывать явно.
Возможно создавать объекты и массивы, сохраняющие различные базовые типы без взаимных преобразований, с помощью ссылки на класс Number.
При автоупаковке значения базового типа возможны ситуации с появлением некорректных значений и непроверяемых ошибок.
№58 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы
К операторам относится также оператор определения принадлежности типу instanceof, оператор [ ] и тернарный оператор ?: (if-then-else).
Логические операции выполняются над значениями типа boolean (true или false).
Оператор instanceof возвращает значение true, если объект является экземпляром данного класса.
№59 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы
Операции над целыми числами: +, , *, %, /, ++,-- и битовые операции &, |, ^, ~ аналогичны операциям большинства языков программирования.
Деление на ноль целочисленного типа вызывает исключительную ситуацию, переполнение не контролируется.
№60 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы
Операции над числами с плавающей точкой практически те же, что и в других языках, но по стандарту IEEE 754 введены понятие бесконечности +Infinity и –Infinity и значение NaN (Not a Number). Результат деления положительного числа на 0 равен положительной бесконечности, отрицательного – отрицательной бесконечности. Вычисление квадратного корня из отрицательного числа или деление 0/0 – не число. Проверить, что какой-то результат равен не числу можно с помощью методов Double.isNan(<arg>) или Float.isNaN(<arg>), возвращающих значение типа boolean.
№62 слайд
Содержание слайда: Типы данных, переменные, операторы. Вычисления с плавающей точкой
Все вычисления, которые проводятся над числами с плавающей точкой следуют стандарту IEEE 754. В Java есть три специальных числа с плавающей точкой
Положительная бесконечность
Отрицательная бесконечность
Не число
В языке Java существуют константы
Double.POSITIVE_INFINITY;
Float.POSITIVE_INFINITY;
Double.NEGATIVE_INFINITY;
Float.NEGATIVE_INFINITY;
Double.NaN;
Float.NaN;
№65 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы управления
Циклы:
Циклы выполняются, пока булевское выражение boolexp равно true.
Оператор прерывания цикла break и оператор прерывания итерации цикла continue, можно использовать с меткой, для обеспечения выхода из вложенных циклов.
№66 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы управления
break – применяется для выхода из цикла, оператора switch
continue - применяется для перехода к следующей итерации цикла
В языке Java расширились возможности оператора прерывания цикла break и оператора прерывания итерации цикла continue, которые можно использовать с меткой.
№67 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы управления
Проверка условия для всех циклов выполняется только один раз за одну итерацию, для циклов for и while – перед итерацией, для цикла do/while – по окончании итерации.
Цикл for следует использовать при необходимости выполнения алгоритма строго определенное количество раз. Цикл while используется в случае, когда неизвестно число итераций для достижения необходимого результата, например, поиск необходимого значения в массиве или коллекции. Этот цикл применяется для организации бесконечных циклов в виде while(true).
№68 слайд
Содержание слайда: Типы данных, переменные, операторы. Операторы управления
Для цикла for не рекомендуется в цикле изменять индекс цикла.
Условие завершения цикла должно быть очевидным, чтобы цикл не «сорвался» в бесконечный цикл.
Для индексов следует применять осмысленные имена.
Циклы не должны быть слишком длинными. Такой цикл претендует на выделение в отдельный метод.
Вложенность циклов не должна превышать трех.
№71 слайд
Содержание слайда: Типы данных, переменные, операторы. Instanceof
Объект подкласса может быть использован всюду, где используется объект суперкласса
Результатом действия оператора instanceof будет истина, если объект является объектом типа c с которым идет поверка или одного из его подклассов, но не наоборот.
№75 слайд
Содержание слайда: Типы данных, переменные, операторы. Ссылочные типы данных. Базовые элементы работы со строками.
Знак + применяется для объединения двух строк.
Если в строковом выражении применяется нестроковый аргумент, то он преобразуется к строке автоматически.
Чтобы сравнить на равенство две строки необходимо воспользоваться методом equals()
Длина строки определяется с помощью метода length() - int len = str.length();
№77 слайд
Содержание слайда: Типы данных, переменные, операторы. Ссылочные типы данных. Базовые элементы работы со строками
Перевести строковое значение в величину типа int или double можно с помощью методов parseInt() и parseDouble() классов Integer и Double. Обратное преобразование возможно при использовании метода valueOf() класса String. Кроме того, любое значение можно преобразовать в строку путем конкатенации его (+) с пустой строкой (“”).
№79 слайд
Содержание слайда: Типы данных, переменные, операторы. Ссылочные типы данных. Базовые элементы работы со строками. Example 18
Для преобразования целого числа в десятичную, двоичную, шестнадцатеричную и восьмеричную строки используются методы toString(), toBinaryString(), toHexString() и toOctalString().
№82 слайд
Содержание слайда: Простейшие классы и объекты. Определения
Классом называется описание совокупности объектов с общими атрибутами, методами, отношениями и семантикой.
Классы определяют структуру и поведение некоторого набора элементов предметной области, для которой разрабатывается программная модель.
Каждый класс имеет свое имя, отличающее его от других классов, и относится к определенному пакету. Имя класса в пакете должно быть уникальным. Физически пакет представляет собой каталог, в который помещаются программные файлы, содержащие реализацию классов.
Классы позволяют разбить поведение сложных систем на простое взаимодействие взаимосвязанных объектов.
№83 слайд
Содержание слайда: Простейшие классы и объекты. Свойства и методы класса
Свойства классов
Уникальные характеристики, которые необходимы при моделировании предметной области
ОБЪЕКТЫ различаются значениями свойств
Свойства отражают состояние объекта
Методы классов
Метод отражает ПОВЕДЕНИЕ объектов
Выполнение методов, как правило, меняет значение свойств
Поведение объекта может меняться в зависимости от состояния
№85 слайд
Содержание слайда: Простейшие классы и объекты. Свойства и методы класса
Все функции определяются внутри классов и называются методами.
Методы определяются только внутри класса. Указывается:
Модификатор доступа
Слово static
Тип возвращаемого значения
Аргументы
Невозможно создать метод, не являющийся методом класса или объявить метод вне класса.
№86 слайд
Содержание слайда: Простейшие классы и объекты. Свойства и методы класса
Объявление класса имеет вид:
[спецификаторы] class имя_класса
[extends суперкласс] [implements список_интерфейсов]{
/*определение класса*/
}
Создание объекта имеет вид:
имя_класса имя_объекта= new конструктор_класса([аргументы]);
№88 слайд
Содержание слайда: Простейшие классы и объекты. Атрибуты доступа
Спецификатор класса может быть:
public (класс доступен объектам данного пакета и вне пакета).
final (класс не может иметь подклассов).
abstract (класс содержит абстрактные методы, объекты такого класса могут создавать только подклассы).
По умолчанию спецификатор доступа устанавливается в friendly (класс доступен в данном пакете). Данное слово при объявлении вообще не используется и не является ключевым словом языка, мы его используем для обозначения.
№89 слайд
Содержание слайда: Простейшие классы и объекты. Конструкторы
Конструктор – это метод, который автоматически вызывается при создании объекта класса и выполняет действия только по инициализации объекта;
Конструктор имеет то же имя, что и класс;
Вызывается не по имени, а только вместе с ключевым словом new при создании экземпляра класса;
Конструктор не возвращает значение, но может иметь параметры и быть перегружаемым.
№92 слайд
Содержание слайда: Простейшие классы и объекты. Пакеты
Пакеты – это контейнеры классов, которые используются для разделения пространства имен классов. Пакет в Java создается включением в текст программы первым оператором ключевого слова package.
package имя_пакета;
package имя_пакета.имя_подпакета.имя_подпакета;
Для хранения пакетов используются каталоги файловой системы.
№94 слайд
Содержание слайда: Простейшие классы и объекты. Пакеты
Пакеты регулируют права доступа к классам и подклассам.
Сущности (интерфейсы, классы, методы, поля), помеченные ключевым словом public, могут использоваться любым классом.
Закрытые сущности могут использоваться только определившим их классом.
Если ни один модификатор доступа неуказан, то сущность (т.е. класс, метод или переменная) является доступной всем методам в том же самом пакете.
№98 слайд
Содержание слайда: JavaBeans. Определение
JavaBeans – гибкая, мощная и удобная технология разработки многократно-используемых программных компонент, называемых beans.
C точки зрения ООП, компонент JavaBean – это классический самодостаточный объект, который, будучи написан один раз, может быть многократно использован при построении новых апплетов, сервлетов, полноценных приложений, а также других компонент JavaBean.
№99 слайд
Содержание слайда: JavaBeans. Определение
Отличие от других технологий заключается в том, что компонент JavaBean строится по определенным правилам, с использованием в некоторых ситуациях строго регламентированных интерфейсов и базовых классов.
Java bean – многократно используемая компонента, состоящая из свойств (properties), методов (methods) и событий (events)
№100 слайд
Содержание слайда: JavaBeans. Свойства Bean
Свойства компоненты Bean – это дискретные, именованные атрибуты соответствующего объекта, которые могут оказывать влияние на режим его функционирования.
В отличие от атрибутов обычного класса, свойства компоненты Bean должны задаваться вполне определенным образом: нежелательно объявлять какой-либо атрибут компоненты Bean как public. Наоборот, его следует декларировать как private, а сам класс дополнить двумя методами set и get.
№106 слайд
Содержание слайда: JavaBeans. Использование
Может показаться, что нет никакой разницы, предоставляем ли мы доступ извне непосредственно к свойству компоненты Bean, или же для достижения того же самого результата используем методы set и get. Принципиально важное отличие заключается в том, что в последнем случае мы получаем возможность контролировать все изменения этого свойства. Например, мы можем связать с методом set определенный программный код, который будет автоматически оповещать другие компоненты приложения, если кто-то попытается изменить значение этого свойства.
№107 слайд
Содержание слайда: JavaBeans. Синхронизация
Заметим, что реализуя тот или иной метод, разработчик должен учитывать, что создаваемый им компонент Bean должен будет функционировать в программной среде со многими параллельными потоками (threads), т.е. в условиях, когда сразу от нескольких потоков могут поступить запросы на доступ к тем или иным методам или атрибутам объекта. Наиболее тривиальный способ синхронизации таких запросов заключается в том, чтобы пометить все методы класса Bean директивой synchronized.
№109 слайд
Содержание слайда: Массивы. Определения
Для хранения нескольких однотипных значений используется ссылочный тип – массив
Массивы элементов базовых типов состоят из значений, проиндексированных начиная с нуля.
Все массивы в языке Java являются динамическими, поэтому для создания массива требуется выделение памяти с помощью оператора new или инициализации.
№110 слайд
Содержание слайда: Массивы. Определения
Значения элементов неинициализированных массивов, для которых выделена память, устанавливается в нуль.
Многомерных массивов в Java не существует, но можно объявлять массивы массивов. Для задания начальных значений массивов существует специальная форма инициализатора.
№111 слайд
Содержание слайда: Массивы. Определения
Массивы объектов в действительности представляют собой массивы ссылок, проинициализированных по умолчанию значением null.
Все массивы хранятся в куче (heap), одной из подобластей памяти, выделенной системой для работы виртуальной машины. Определить общий объем памяти и объем свободной памяти, можно с помощью методов totalMemory() и freeMemory() класса Runtime.
№123 слайд
Содержание слайда: Code conventions. Code conventions for Java Programming
Содержание: имена файлов, организация структуры файлов, структурированное расположение текста, комментарии, объявления, операторы, пробельные символы, соглашение об именовании, практики программирования.
80% стоимости программного обеспечения уходит на поддержку.
Едва ли программное обеспечение весь свой жизненный цикл будет поддерживаться автором..
Code conventions улучшает удобочитаемость программного кода, позволяя понять новый код долее быстро и полностью.
http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
№124 слайд
Содержание слайда: Code conventions. Best Practices
Объявляйте локальные переменные сразу перед использованием
Определяется их область видимости.
Уменьшается вероятность ошибок и неудобочитаемости.
Поля необходимо объявлять как private
Декларирование полей как public в большинстве случаев некорректно, оно не защищает пользователя класса от изменений в реализации класса.
Объявляйте поля как private. Если пользователю необходимо получить доступ к этим полям, следует предусмотреть set и get методы.
№125 слайд
Содержание слайда: Code conventions. Best Practices
При объявлении разделяйте public и private члены класса
Это общераспространенная практика, разделения членов класса согласно их области видимости (public, private, protected). Данные с каким атрибутом доступа будут располагаться первыми зависит от программиста.
Используйте javadoc
Javadoc – это мощный инструмент, который необходимо использовать.
№126 слайд
Содержание слайда: Code conventions. Best Practices
С осторожностью используйте System.Exit(0) с многопоточными приложениями.
Нормальный способ завершения программы должен завершать работу всех используемых потоков.
Используйте интерфейсы для определения констант.
Создание класса для констант является оправданным, только если это широко используемые константы.
№127 слайд
Содержание слайда: Code conventions. Best Practices
Проверяйте аргументы методов
Первые строки методов обычно проверяют корректность переданных параметров. Идея состоит в том, чтобы как можно быстрее сгенерировать сообщение об ошибке в случае неудачи. Это особенно важно для конструкторов.
Дополнительные пробелы в списке аргументов
Дополнительные пробелы в списке аргументов повышают читабельность кода – как (this ) вместо (that).
№128 слайд
Содержание слайда: Code conventions. Best Practices
Применяйте Testing Framework
Используйте testing framework чтобы убедиться, что класс выполняет контракт
Используйте массивы нулевой длины вместо null
Когда метод возвращает массив, который может быть пустым, не следует возвращать null.
Это позволяет не проверять возвращаемое значение на null.
№129 слайд
Содержание слайда: Code conventions. Best Practices
Избегайте пустых блоков catch
В этом случае когда происходит исключение, то ничего не происходит, и программа завершает свою работу по непонятной причине.
Применяйте оператор throws
Не следует использовать базовый класс исключения вместо нескольких его производных, в этом случае теряется важная информация об исключении.
№130 слайд
Содержание слайда: Code conventions. Best Practices
Правильно выбирайте используемые коллекции
Документация Sun определяет ArrayList, HashMap и HashSet как предпочтительные для применения. Их производительность выше.
Работайте с коллекциями без использование индексов
Применяете for-each или итераторы. Индексы всегда остаются одной из главных причин ошибок.
№132 слайд
Содержание слайда: Code conventions. Best Practices
Declarations. Длина строк кода
Не используйте строки длиной более 80 символов.
Объявление переменных
Не присваивайте одинаковые значения нескольким переменных одним оператором.
fooBar.fChar = barFoo.lchar = ‘c’;c// AVOID!!!
При декларировании переменных объявляйте по одной переменной в строке кода
Такое объявление позволяет писать понятные комментарии.
№137 слайд
Содержание слайда: Параметризованные классы. Назначение и синтаксис
С помощью шаблонов можно создавать параметризованные (родовые, generic) классы и методы, что позволяет использовать более строгую типизацию, например при работе с коллекциями.
Пример класса-шаблона с двумя параметрами:
Здесь T1, Т2 – фиктивные типы, которые используются при объявлении атрибутов класса. Компилятор заменит все фиктивные типы на реальные и создаст соответствующий им объект. Объект класса Message можно создать, например, следующим образом:
№139 слайд
Содержание слайда: Параметризованные классы. Назначение и синтаксис. Example 30
package _java._se._01._generics;
public class OptionalDemo {
public static void main(String[] args) {
// параметризация типом Integer
Optional<Integer> ob1 = new Optional<Integer>();
ob1.setValue(1);
// ob1.setValue("2");// ошибка компиляции: недопустимый тип
int v1 = ob1.getValue();
System.out.println(v1);
// параметризация типом String
Optional<String> ob2 = new Optional<String>("Java");
String v2 = ob2.getValue();
System.out.println(v2);
// ob1 = ob2; //ошибка компиляции – параметризация не ковариантна
№140 слайд
Содержание слайда: Параметризованные классы. Назначение и синтаксис. Example 30
// параметризация по умолчанию – Object
Optional ob3 = new Optional();
System.out.println(ob3.getValue());
ob3.setValue("Java SE 6");
System.out.println(ob3.toString());/* выводится тип объекта, а не тип параметризации */
b3.setValue(71);
System.out.println(ob3.toString());
ob3.setValue(null);
}
}
№141 слайд
Содержание слайда: Параметризованные классы. Использование extends
Объявление generic-типа в виде <T>, несмотря на возможность использовать любой тип в качестве параметра, ограничивает область применения разрабатываемого класса. Переменные такого типа могут вызывать только методы класса Object. Доступ к другим методам ограничивает компилятор, предупреждая возможные варианты возникновения ошибок.
Чтобы расширить возможности параметризованных членов класса, можно ввести ограничения на используемые типы при помощи следующего объявления класса:
№143 слайд
Содержание слайда: Параметризованные классы. Метасимволы
Часто возникает необходимость в метод параметризованного класса одного допустимого типа передать объект этого же класса, но параметризованного другим типом.
В этом случае при определении метода следует применить метасимвол “?”.
<?>
Метасимвол также может использоваться с ограничением extends для передаваемого типа.
<? extends Number>
№146 слайд
Содержание слайда: Параметризованные классы. Метасимволы
Метод sameAny(Mark<?> ob) может принимать объекты типа Mark, инициализированные любым из допустимых для этого класса типов, в то время как метод с параметром Mark<T> мог бы принимать объекты с инициализацией того же типа, что и вызывающий метод объект.
№147 слайд
Содержание слайда: Параметризованные классы. Параметризованные методы
Параметризованный (generic) метод определяет базовый набор операций, которые будут применяться к разным типам данных, получаемых методом в качестве параметра.
<T extends Тип> Тип method(T arg) {}
<T> Тип method(T arg) {}
Описание типа должно находиться перед возвращаемым типом. Запись первого вида означает, что в метод можно передавать объекты, типы которых являются подклассами класса, указанного после extends. Второй способ объявления метода никаких ограничений на передаваемый тип не ставит.
№149 слайд
Содержание слайда: Параметризованные классы. Ограничения на использование
Нельзя явно вызвать конструктор параметризованного класса, так как компилятор не знает, какой конструктор может быть вызван и какой объем памяти должен быть выделен при создании объекта,
Параметризованные поля не могут быть статическими, статические методы не могут иметь параметризованные поля и обращаться к ним также запрещено.
№150 слайд
Содержание слайда: Параметризованные классы. Применение
Параметризованные методы применяются когда необходимо разработать базовый набор операций, который будет работать с различными типами данных.
Описание типа всегда находится перед возвращаемым типом. Параметризованные методы могут размещаться как в обычных, так и в параметризованных классах. Параметр метода может не иметь никакого отношения к параметру класса.
Метасимволы применимы и к generic-методам.
№153 слайд
Содержание слайда: Перечисления. Определения
В отличие от статических констант, предоставляют типизированный, безопасный способ задания фиксированных наборов значений
Являются классами специального вида, не могут иметь наследников, сами в свою очередь наследуются от java.lang.Enum и реализуют java.lang.Comparable (следовательно, могут быть сортированы) и java.io.Serializable.
№155 слайд
Содержание слайда: Перечисления. Создание объектов перечисления
Экземпляры объектов перечисления нельзя создать с помощью new, каждый объект перечисления уникален, создается при загрузке перечисления в виртуальную машину, поэтому допустимо сравнение ссылок для объектов перечислений, можно использовать switch
Как и обычные классы могут реализовывать поведение, содержать вложенные классы.
Enums по умолчанию public, static и final
№157 слайд
Содержание слайда: Перечисления. Методы перечисления
Каждый класс перечисления неявно содержит следующие методы:
static enumType[] values() – возвращает массив, содержащий все элементы перечисления в порядке их объявления;
static T valueOf(Class<T> enumType, String arg) – возвращает элемент перечисления, соответствующий передаваемому типу и значению передаваемой строки;
static enumType valueOf(String arg) – возвращает элемент перечисления, соответствующий значению передаваемой строки;
(статические методы, выбрасывает IllegalArgumentException если нет элемента с указанным именем)
№161 слайд
Содержание слайда: Перечисления. Конструкторы и анонимные классы для перечисления. Example 35
Класс перечисления может иметь конструктор (private либо package), который вызывается для каждого элемента при его декларации. Отдельные элементы перечисления могут реализовывать свое собственное поведение.
№165 слайд
Содержание слайда: Внутренние классы. Определение
В Java можно объявлять классы внутри других классов и даже внутри методов. Они делятся на внутренние нестатические, сложенные статические и анонимные классы. Такая возможность используется, если класс более нигде не используется, кроме как в том, в который он вложен. Более того, использование внутренних классов позволяет содавать простые и понятные программы, управляющие событиями.
№167 слайд
Содержание слайда: Внутренние классы. Inner (нестатические)
Доступ к элементам внутреннего класса возможен только из внешнего класса через объект внутреннего класса. То есть, чтобы класс Outer мог вызвать какой-либо метод класса Inner в классе Outer необходимо создать объект класса Inner и вызывать методы уже через этот объект.
№170 слайд
Содержание слайда: Внутренние классы. Inner (нестатические)
Объект внутреннего класса имеет ссылку на объект своего внешнего класса. Ссылка эта неявная. Предположим что имя это ссылки ref_outer (естественно, никакой реальной ссылки с таким именем по умолчанию во внутреннем классе не предусматривается), тогда любой доступ к элементам внешнего класса из внутреннего выглядит следующим образом. Именно эта неявная ссылка и позволяет методам внутреннего класса иметь прямой доступ к полям и методам внешнего класса.
№183 слайд
Содержание слайда: Внутренние классы. Inner (нестатические)
Внутренний класс может быть объявлен внутри метода или логического блока внешнего класса; видимость класса регулируется видимостью того блока, в котором он объявлен; однако класс сохраняет доступ ко всем полям и методам внешнего класса, а также константам, объявленным в текущем блоке кода.
№186 слайд
Содержание слайда: Внутренние классы. Inner (нестатические)
Правила для внутренних классов.
1) ссылка на внешний класс имеет вид
имя_внешнего_класса.this
Для получения доступа из внутреннего класса к экземпляру его внешнего класса необходимо в ссылке указать имя класса и ключевое слово this, поставив между ними точку (например, OuterClass.this). Ключевое слово this обеспечивает доступ к потенциально спрятанным методам и полям, в которых внутренние и внешние классы используют метод или переменную с одинаковыми именами.
№187 слайд
Содержание слайда: Внутренние классы. Inner (нестатические)
Например, в следующем определении класса и у внешнего и у внутреннего классов присутствует переменная count. Для получения доступа к переменной внешнего класса, необходимо в ссылке на переменную перед ее именем приписать префикс this и имя внешнего класса.
№188 слайд
Содержание слайда: Внутренние классы. Inner (нестатические). Example 49
package _java._se._01._innerclasses.inner.outer12;
class OuterClass {
int count = 0;
class InnerClass {
int count = 10000;
public void display() {
System.out.println("Outer: " + OuterClass.this.count);
System.out.println("Inner: " + count);
}
}
}
№208 слайд
Содержание слайда: Javadoc. Основание для ведения документации
Возобновление работы над проектом после продолжительного перерыва
Переход проекта от одного человека (группы) к другому человеку (группе)
Опубликование проекта для Open Source сообщества
Совместная работа большой группы людей над одним проектом
№212 слайд
Содержание слайда: Javadoc. Синтаксис javadoc-комментария
Обыкновенный комментарий
/* Calculates the factorial */
int factorial(int x) {
…
Javadoc-комментарий (он может включать в себя HTML тэги и специальные javadoc тэги, которые позволяют включать дополнительную информацию и ссылки)
/** Calculates the factorial */
public double factorial(int x) {
№213 слайд
Содержание слайда: Javadoc. Структура javadoc-комментария
Структура каждого javadoc-комментария такова:
первая строчка, которая попадает в краткое описание класса (отделяется точкой и пустой строкой);
основной текст, который вместе с HTML тэгами копируется в основную документацию;
входящие параметры (если есть);
выбрасываемые исключения (если есть);
возвращаемое значение (если есть);
служебные javadoc-тэги.
№228 слайд
Содержание слайда: Javadoc. Описание пакета
Есть возможность применять комментарии для пакетов. Для этого необходимо поместить файл package.html в пакет с исходными текстами.
Данный файл должен быть обычным HTML-файлом с тегом <body>.
Первая строчка файла до точки идет в краткое описание пакета, а полное идет вниз – под список всех классов и исключений.
Этот функционал позволяет описать что-то, что невозможно описать с помощью конкретных классов.
№234 слайд
Содержание слайда: Javadoc. Example 61
/**
* Произвести запись нового объекта.
*
* Произвести запись нового объекта. Тип для сохранения может быть
* подклассом List (для реализации возможности работы с несколькими
* объектами) или единичным объектом. В случае если произошла какая-либо
* ошибка - выбрасывается исключение. В данном случае с базой не происходит
* никаких изменений и ни один объект не был затрагивается предполагаемой
* операцией. Конкретный тип ошибки можно определить проверкой конкретного
* возвращённого исключения.
* @param object
* сохраняемый объект/объекты.
* @return сохраненный объект/объекты
* @throws XmlMagnetException ошибка в процессе парсинга XML
* @throws EntityManagerException ошибка связанная с другой работой клиента
*/
public Object insert(Object object) throws XmlMagnetException,
EntityManagerException { return new Object(); }
}
Скачать все slide презентации Java. SE. 01. Java fundamentals. Введение в язык java. Типы данных, переменные, операторы. Простейшие классы и объекты одним архивом:
-
Язык C. Введение. Базовые типы данных. Консоль. Классы и методы
-
Программирование на языке Java. Примитивные типы данных. Операции, комментарии. (Лекция 2. 1)
-
Веб-технологии в промышленности и образовании. Типы данных и операторы в JavaScript. (Лекция 17)
-
Введение в Javascript. Структура кода. Введение в типы данных. Команды вывода на экран
-
Назначение и возможности языка PHP. Переменные, константы и типы данных РНР. Лекция 1
-
Введение в объекты Java
-
Язык Javascript. Краткое введение в Javascript
-
Основы языка Java. Введение в Web-технологии Java SE, Java EE, Java ME
-
Объектно-ориентированное программирование. Типы данных, выражения, операторы
-
Переменные, типы, операции в JavaScript