Модуль компиляции
Модуль компиляции (compilation unit) хранится в текстовом .java-файле и является единичной порцией входных данных для компилятора. Он состоит из трех частей:
- объявление пакета;
- import-выражения;
- объявления верхнего уровня.
Объявление пакета одновременно указывает, какому пакету будут принадлежать все объявляемые ниже типы. Если данное выражение отсутствует, значит, эти классы располагаются в безымянном пакете (другое название – пакет по умолчанию).
Import-выражения позволяют обращаться к типам из других пакетов по их простым именам, импортировать их. Эти выражения также необязательны.
Наконец, объявления верхнего уровня содержат объявления одного или нескольких типов.
Jar-архив
JAR файл — это Java-архив (сокращение от англ. Java ARchive). Представляет собой обычный ZIP-архив, в котором содержится часть программы на языке Java.
Чтобы JAR файл был исполняемым, он должен содержать файл MANIFEST.MF в каталоге META-INF, в котором должен быть указан главный класс программы (такой класс должен содержать метод main и задаётся параметром Main-Class). Номер версии JAR задаётся параметром Manifest-Version и является обязательным. В SDK 1.2 значение этого параметра должно быть равно 1.0.
java -jar имя_файла
Класс
Классы в Java, равно как и в других объектно-ориентированных языках программирования, — это шаблоны (прототипы), которые используются для создания объектов.
Основной элемент любой программы на Java — класс. Класс состоит из описаний структур данных и процедур работы с этими структурами, которые в терминологии Java называют методами. Программист, пишущий на Java, создает классы. Исполнение программы, написанной на Java, это выполнение последовательности методов различных классов.
Интерфейс
Интерфе?йс — конструкция в коде программы, используемая для специфицирования услуг, предоставляемых классом или компонентом.
Java не позволяет наследовать больше одного класса. В качестве альтернативы множественному наследованию, существуют интерфейсы. Каждый класс в Java может реализовать любой набор интерфейсов. Порождать объекты от интерфейсов в Java нельзя.
Интерфейс — это что-то вроде абстрактного класса, который никогда не может быть использован для создания объектов, но может быть использован только для создания подклассов. Функции интерфейса — это абстрактные методы, которые должны быть имплементированы в каждом конкретном классе, имплементирующем интерфейс.
Пакет
Java package (пакет Java) — механизм, позволяющий организовать Java классы в пространства имен.
Объявление пакета одновременно указывает, какому пакету будут принадлежать все объявляемые ниже типы. Если данное выражение отсутствует, значит, эти классы располагаются в безымянном пакете (другое название – пакет по умолчанию).
Основные пакеты в J2SE 6.0:
java.util— collection data structure classes
java.io— file operations
java.math— multiprecision arithmetics
java.nio— the New I/O framework for Java
java.net— networking operations, sockets, DNS lookups, …
java.security— key generation, encryption and decryption
java.sql— Java Database Connectivity (JDBC) to access databases
java.awt— basic hierarchy of packages for native GUI components
javax.swing— hierarchy of packages for platform-independent rich GUI components
Область видимости и модификаторы доступа
В Java существуют следующие модификаторы доступа:
- private: члены класса доступны только внутри класса;
- default (package-private) (модификатор, по-умолчанию): члены класса видны внутри пакета (если класс будет так объявлен он будет доступен только внутри пакета);
- protected: члены класса доступны внутри пакета и в наследниках;
- public: члены класс доступны всем;
Последовательность модификаторов по убыванию уровня закрытости: private, default, protected, public).
Во время наследования возможно изменения модификаторов доступа в сторону большей видимости.
Имена. Лексемы Java
Лексемы (tokens) – это элементарные законченные слова языка. Компилятор разбивает поток исходного текста на лексемы и предпринимает попытку выяснить, из каких идентификаторов, операторов, выражений и Т.д. состоит код. Символы пробела (собственно пробелы, знаки табуляции, перевода строки и возврата каретки) не являются значимыми, за исключением тех, которые разделяют лексемы или расположены внутри символьных или строковых литералов.
Ниже перечислены все виды лексем в Java:
- идентификаторы — имена, которые даются различным элементам языка для упрощения доступа к ним (чувствительны к регистру);
- ключевые слова — это зарезервированные слова, состоящие из ASCII -символов и выполняющие различные задачи языка (Boolean, else, interface, break, extends, long);
- литералы — позволяют задать в программе значения для числовых, символьных и строковых выражений, а также null- литералов;
- разделители – это специальные символы, которые используются в служебных целях языка()[],.;
- операторы — используются в различных операциях – арифметических, логических, битовых, операциях сравнения и присваивания.
Модели жизненного цикла ПО (водопад, спиральная)
Модель жизненного цикла ПО — структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении жизненного цикла. Модель жизненного цикла зависит от специфики, масштаба и сложности проекта и специфики условий, в которых система создается и функционирует.
Водопадная (каскадная, последовательная) модель
Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Этапы проекта в соответствии с каскадной моделью:
- Формирование требований;
- Проектирование;
- Реализация;
- Тестирование;
- Внедрение;
- Эксплуатация и сопровождение.
Преимущества:
- Полная и согласованная документация на каждом этапе;
- Легко определить сроки и затраты на проект.
Недостатки:
- Существенное запаздывание с получением результатов;
- Пользователи могут внести свои замечания только после того, как работа над системой будет полностью завершена
- Модели (как функциональные, так и информационные) автоматизируемого объекта могут устареть одновременно с их утверждением.
Спиральная модель
Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.
Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.
На каждой итерации оцениваются:
- риск превышения сроков и стоимости проекта;
- необходимость выполнения ещё одной итерации;
- степень полноты и точности понимания требований к системе;
- целесообразность прекращения проекта.
Отличительной особенностью спиральной модели является специальное внимание, уделяемое рискам, влияющим на организацию жизненного цикла, и контрольным точкам. Боэм формулирует 10 наиболее распространённых (по приоритетам) рисков:
- Дефицит специалистов.
- Нереалистичные сроки и бюджет.
- Реализация несоответствующей функциональности.
- Разработка неправильного пользовательского интерфейса.
- Перфекционизм, ненужная оптимизация и оттачивание деталей.
- Непрекращающийся поток изменений.
- Нехватка информации о внешних компонентах, определяющих окружение системы или вовлеченных в интеграцию.
- Недостатки в работах, выполняемых внешними (по отношению к проекту) ресурсами.
- Недостаточная производительность получаемой системы.
- Разрыв в квалификации специалистов разных областей.
Принципы ООП
- Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
- Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
- Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Что такое POSIX
POSIX® (англ. Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. ISO совместно c МЭК приняли данный стандарт (POSIX) под названием ISO/IEC 9945.
Стандарт состоит из четырёх основных разделов:
- Основные определения — список основных определений и соглашений, используемых в спецификациях, и список заголовочных файлов языка Си, которые должны быть предоставлены соответствующей стандарту системой.
- Оболочка и утилиты — описание утилит и командной оболочки sh, стандарты регулярных выражений.
- Системные интерфейсы — список системных вызовов языка Си.
- Обоснование — объяснение принципов, используемых в стандарте.
Типы данных
Статьи к прочтению:
Урок 03. PHP — ООП. Область видимости свойств и методов класса (private, public, protected)
Похожие статьи:
-
Время жизни и область видимости программных объектов
Объявления переменных Объявление переменных допустимо без указания класса памяти или использовать спецификатор класса памяти static или extern….
-
Порядок наложения и область видимости
Лабораторная работа №1 Проектирование главной страницы сайта с использованием CSS Цель работы Целью данной работы является ознакомление с каскадными…