Основы программирования на java




Скачать 138.77 Kb.
НазваниеОсновы программирования на java
страница1/2
Дата публикации23.03.2013
Размер138.77 Kb.
ТипДокументы
vbibl.ru > Военное дело > Документы
  1   2

Основы программирования на JAVA.


  1. Классы языка Java и их синтаксис. Члены класса. Статические члены класса. Поля и методы класса. Главный метод приложения. Конструкторы класса. Цепочки конструкторов. Статические поля и методы классов.

•Классы инкапсулируют атрибуты (поля) и поведение(методы)

•Классы могут быть независимы друг от друга

•Атрибуты и методы являются членами класса

•Члены класса могут принадлежать всему классу. В этом случае поля и методы помечаются ключевым словом static

•Для доступа к статическому атрибуту (класса) используется имя класса, для доступа к атрибуту экземпляра - имя экземпляра.

•В статических методах класса можно использовать только статические атрибуты класса и вызывать только статические методы класса.

•Члены класса могут принадлежать конкретным объектам. В этом случае они называются полями и методами экземпляров класса

•Классы инкапсулируют атрибуты (поля) и поведение(методы)

• Классы могут быть связаны отношением наследования. (cуперкласс/подкласс).

• Конструктор – метод который создает экземпляр класса. Имя конструктора совпадает с именем класса. Допустимы несколько конструкторов с различными параметрами

• Конструктор используется для инициализации объектов

• Тело класса содержит по меньшей мере один конструктор

• Конструктор возвращает указатель на созданный объект.

Оператор return в конструкторе отсутствует

• Для создания экземпляров класса используется ключевое слово new с именем конструктора

King piece = new King();

• Умалчиваемый конструктор не имеет аргументов.

Предоставляется по умолчанию платформой Java если нет ни одного явно определенного конструктора

• При определении хотя бы одного явного конструктора необходимо объявить явно и умалчиваемый конструктор

• Цепочка конструкторов - вызов внутри класса одного конструктора другим. Используется для разделения общего кода между конструкторами

• Вызов цепочки конструкторов:

this(список аргументов

• Объекты суперкласса строятся до построения объекта-

подкласса

• Для инициализации членов суперкласса используется вызов:

- super(список-аргументов)

• Первой строкой конструктора могут быть:

- super(список-аргументов)

- this(список-аргументов)

• В одном конструкторе нельзя использовать одновременно и

super и this

• Компилятор предоставляет неявный вызов конструктора

super() для всех конструкторов подклассов

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

• Виртуальная машина Java загружает класс и начинает выполнение с метода main

• Статические поля и методы принадлежат классу

• При изменении статического значения одним из объектов данного класса изменяется значение для всех объектов данного класса

• Статические методы и поля могут быть доступны без создания экземпляров класса

  1. Пакеты классов и интерфейсов. Импорт классов и интерфейсов из других пакетов. Разновидности видимости классов и интерфейсов. Соглашения об именовании пакетов, классов, директорий и файлов при программировании на Java.

• Логически связанные классы группируются в пакеты

•Классы могут реализовывать один и более интерфейсов

•Различные пакеты могут иметь классы с одинаковыми именами

•По соглашению имена пакетов задаются в нижнем регистре

•Для ссылки на классы в том же пакете можно использовать только имя класса

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

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

•В одном файле с расширением *.java не может быть более одного публичного класса
^ Модификаторы для классов:

•Модификатор public

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

•Модификатор private

Этот модификатор допустим только для классов, которые вложены в другие классы

•Модификатор abstract

Запрет на создание экземпляров класса

•Модификатор final

Запрет на создание подклассов данного класса

  1. Наследование полей и методов классов в языке Java. Перекрытие наследуемых методов. Использование конструкторов наследуемых классов. Разновидности видимости членов классов. Полиморфизм. Использование рефакторинга для преобразования иерархии наследования. Абстрактные классы. Конечные (final) классы.

•Каждый подкласс наследует поля суперкласса и всех классов расположенных выше в иерархии наследования

•Каждый подкласс наследует методы суперкласса. Объект будет понимать все сообщения (вызов методов) его класса и суперклассов

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

• Перекрывающий метод должен иметь то же имя и список параметров (сигнатуру)

• Метод подкласса может заменять или уточнять метод суперкласса

^ Ограничения при перекрытии наследуемых методов:

•Список параметров должен совпадать со списком параметров перекрываемого наследуемого метода суперкласса

•Тип возвращаемого результата должен совпадать с типом возвращаемого результата метода суперкласса

•Модификатор доступа в суперклассе не может быть более ограничительным, чем модификатор доступа в подклассе. Пример. При перекрытии метода с модификатором protected, новый метод может быть protected или public, но не private

^ Конструкторы наследуемых классов

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

• Для вызова конструктора суперкласса используется ключевое слово super и список параметров конструктора

• Для вызова конструктора того же класса используется ключевое слово this и список параметров конструктора • Первой строкой конструктора может быть одна из: this() , super()

•Вызов конструктора через this() или super() допустим только в конструкторе

^ Модификаторы доступа для членов классов:

private – доступ ограничен классом в котором объявлен данный член класса. private int x;

default (без модификатора) – доступ ограничен пакетом, в котором данный класс объявлен. int y;

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

p
^ Методы рефакторинга.

Создание и удаление

•классов, методов, переменных

Перемещение методов и переменных:

•вниз/вверх по иерархии наследования

• перемещение в другой класс

Реорганизация

• Иерархии наследования

• Кода методов

Основа рефакторинга – обобщение. Абстракции находятся снизу вверх проверкой множества конкретных примеров

• Поиск методов с различными именами, но имеющими схожее поведение

• Параметризация различий у методов

• Разделение больших методов на методы меньшего размера, но допускающие большее переиспользование

• Выполняется во время сопровождения, тестирования,кодирования

rotected void setName(String name) {…}

public – доступ для всех классов всех пакетов

public String getName() {…}

Полиморфизм:

• Переменной может быть присвоен объект типа переменной,

либо объект типа – подкласс типа переменной:

• Любой объект может быть присвоен переменной типа

Object, поскольку он самый верхний в иерархии объектов

^ Абстрактные и конечные классы:

•Модификатор abstract

Запрет на создание экземпляров класса

•Модификатор final

Запрет на создание подклассов данного класса

Полиморфизм:

• Переменной может быть присвоен объект типа переменной,

либо объект типа – подкласс типа переменной:

TextFile file = new TextFile(); TextFile file = new EncryptedFile(); TextFile file = new; PropertiesFile();

• Любой объект может быть присвоен переменной типа

Object, поскольку он самый верхний в иерархии объектов

Object anything = new AnyType();

  1. Интерфейсы языка Java. Типизация и интерфейсы. Члены интерфейсов языка Java. Наследование интерфейсов. Реализация интерфейсов классами. Назначение и использование интерфейсов при программировании на языке Java.

• Интерфейс – именованный список объявлений методов

ƒ Методы только объявляются, а не реализуются

ƒ Интерфейс похож на абстрактный класс, но тем не менее

отличается от него

• Объявляемые в Java типы либо классы, либо интерфейсы

• Методы объявленные в интерфейсе реализуются в классе, поддерживающим данный интерфейс
• Объявление суперкласса всегда предшествует объявлению интерфейсов реализуемых классом:

• Если класс реализует несколько интерфейсов, то имена этих интерфейсов перечисляются через запятую:

^ Типизация и интерфейсы

• Типом переменной и параметра может быть интерфейс

• Переменной и параметру может быть присвоен только объект,

реализующий этот интерфейс

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

• Имя интерфейса не может быть в выражении new

^ Наследование интерфейсов

• Между интерфейсами возможно отношение наследования

• Интерфейс, расширяющий другой интерфейс, наследует все объявления методов интерфейса - предка

• Иерархия наследования интерфейсов независима от иерархии наследования классов

interface File {

public void open(String name);

public void close();

}

interface ReadableFile extends File {

public byte readByte();

}

interface WritableFile extends File {

public void writeByte(byte b);

}

interface ReadWriteFile extends ReadableFile, WritableFile {

public void seek(int position);

}
Использование интерфейсов

• Использование интерфейсов позволяет

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

Осуществлять доступ к методам в отдельных независимых деревьях классов

Использовать в переменных и параметрах объекты не связанные иерархией наследования классов

• Классы, реализующие один и тот же интерфейс, понимают те же самые сообщения независимо от положения в иерархии классов

  1. Исключения (exceptions) в языке Java. Порождение и перехват исключений. Список исключений в объявлении метода. Источники исключений. Иерархия исключений. Приоритеты при обработке исключений. Уведомления (assert) в языке Java. Использование исключений и уведомлений при программировании на Java.  

^ Исключение, Порождение и перехват исключений.

• Событие или условие которое нарушает нормальных ход выполнения программы

• Условие, которое приводит к порождению (throw) исключения системой

• Поток управления прерывается и обработчик исключения будет перехватывать (catch) исключение

Обработка исключения объектно-ориентированная

• Локализует в объекте стандартные условия выполнения программы

• Предоставляет простой способ сделать программу более надежной

• Позволяет разделить нормальный и ненормальный ход выполнения программы

^ Источники исключений.

• Источник исключений виртуальная машина Java

ƒ Не может быть загружен класс

ƒ Используется нулевая (null) ссылка на объект

• Ситуацию может породить и код, который пишет программист, и класс, который программист использует

ƒ IOError ƒ Деление на ноль ƒ Проверка корректности данных

ƒ Исключение обусловленное логикой работы программы

• Если исключение не перехвачено, оно завершает работу программы

^ Иерархия исключений.

•Throwable – базовый класс, предоставляющий общий интерфейс и реализацию большинства исключений

•Error – отмечает серьезные проблемы,которые не могут быть перехвачены

•Exception – описывает класс условий, которые должны быть перехвачены или описаны как порождаемые

• RuntimeException – это исключение может быть порождено при нормальном выполнении виртуальной машины • ArithmeticException • BufferOverflowException

^ Приоритеты при обработке исключений

• Порожденные исключения обрабатываются либо в методе, в котором они были порождены, либо делегируются в вызывающий метод

• throws – фрагмент объявления метода, содержащий список исключений который могут быть делегированы вверх по стеку вызовов ƒ public int doIt() throws SomeException, …

• try – представляет блок кода с присоединенными обработчиками ошибок. Ошибки в try-блоке будут обработаны обработчиками ошибок

• catch – блок кода для обработки конкретного исключения

• finally – необязательный блок который следует после блоков catch. Выполняется всегда независимо от того, какое исключение порождено и было ли оно порождено

• throw – явно порождает исключение ƒ throw new SomeException();

• Не рекомендуется использовать утверждения

ƒ Для проверки аргументов в публичных методах. Для этого требуются RuntimeException, например IllegalArgumentException

• Рекомендуется использовать утверждения для проверки

ƒВнутренних инвариантов (значения, которые никогда не должны возникать). Например, вставить default: assert false в конец выбирающего предложения

ƒ Инварианты потоков управления. Например, вставить assert false в те части программы, которые никогда не должны быть достигнуты

ƒ Предусловия, постусловия и инварианты классов.Например, проверка аргументов скрытых методов

• Две формы утверждений

assert ; assert : ;

• Если утверждение ложно ƒ первая форма утверждения порождает исключение AssertionError без сообщений ƒ вторая форма утверждения порождает исключение AssertionError с сообщением, определенным при вычислении второго выражения

• По умолчанию утверждения не работают (игнорируются). Для их включения необходимо в командной строке java использовать ключ enableassertions

• Утверждения включаются/выключаются для классов/пакетов

  1. Стандартная библиотека коллекций языка Java. Интерфейсы, реализации и алгоритмы коллекций. Структура библиотеки коллекций. Коллекции, множества и списки. Использований реализаций интерфейсов коллекций. Карты (maps) в библиотеке коллекций. Использование различных реализаций карт. Итераторы карт и коллекций. Стандартные алгоритмы при работе с коллекциями. 

JCF - унифицированная архитектура для представления и манипулирования коллекциями

•Уменьшает усилия по программированию

• Уменьшает усилия по изучению и использованию нового API

• Увеличивает скорость и надежность программы

• Допускает переносимость среди связанных API

Состоит из трех частей:ƒ Интерфейсы ƒ Реализации ƒ Алгоритмы

Интерфейсы – абстрактные типы данных представляющие коллекции. Назначение коллекций:

ƒ позволить манипулирование коллекциями независимо от их деталей их представления

ƒ предоставить точки расширения для добавления новых типов коллекций и их реализаций

• Реализации – конкретная реализация интерфейса коллекции

• Алгоритмы – методы, выполняющие полезные вычисления над объектами, которые реализуют интерфейс коллекций. Например, поиск и сортировку.

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

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

  1   2

Добавить документ в свой блог или на сайт

Похожие:

Основы программирования на java iconУчебная программа курса или дисциплины «Основы программирования»
В частности, в курсе рассматриваются основные конструкции языков программирования, анализируются основные типы и структуры данных,...

Основы программирования на java icon3. java язык и технология. 15 Мобильность Java. 15 Объектная модель языка java. 17
Но нет появился еще один, с названием Java. Этот язык сумел получить весьма заметную известность за последние несколько лет, так...

Основы программирования на java iconЯзыки программирования. Лекция 2
Си либо к императивно-объектным языкам. Императивные языки расширены объектной парадигмой – C++, Java, C#, Delfi и многие другие....

Основы программирования на java iconИнтерфейс прикладного программирования
Из Open-Source продуктов мы решили начать обзор с java ориентированной системы Openwfe

Основы программирования на java iconРабочая программа по курсу «основы Программирования на языке ассемблер»
Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений...

Основы программирования на java iconЛекция основы Си++ 9
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Основы программирования на java iconЛекция основы си++ 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. Коломна: кгпи,...

Основы программирования на java iconЛекция основы си++ 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. Коломна: кгпи,...

Основы программирования на java iconДоклад по дисциплине «Проектирование клиент-серверных корпоративных ис»
Все реализации Java должны эмулировать jvm, чтобы создаваемые приложения могли выполняться на любой системе, включающей виртуальную...

Основы программирования на java iconСистема-арбитр Dudge написана на языке программирования Java
Поскольку Dudge является веб-приложением, для его запуска необходим сервер приложений. В качестве сервера приложений Dudge использует...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница