Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
готовые шпоры по java.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
78.07 Кб
Скачать

1. Основы объектно-ориентированного программирования. Основные понятия. ООП. Возможности программирования всегда были ограничены либо возможностями компьютера, либо возможностями человека. В прошлом веке главным ограничением были низкие производительные способности компьютера. В настоящее время физические ограничения отошли на второй план. Со всё более глубоким проникновением компьютеров во все сферы человеческой деятельности, программные системы становятся всё более простыми для пользователя и сложными по внутренней архитектуре. Программирование стало делом команды и на смену алгоритмическим идеологиям программирования пришли эвристические, позволяющие достичь положительного результата различными путями. Базовым способом борьбы со сложностью программных продуктов стало объектно-ориентированное программирование (ООП), являющееся в настоящее время наиболее популярной парадигмой. ООП предлагает способы мышления и структурирования кода. ООП – методология программирования, основанная на представлении программного продукта в виде совокупности объектов, каждый из которых является экземпляром конкретного класса. ООП использует в качестве базовых элементов эвристическое взаимодействие объектов. Объект – реальная именованная сущность, обладающая свойствами и проявляющая свое поведение. В применении к объектно-ориентированным языкам программирования понятие объекта и класса конкретизируется, а именно: Объект – обладающий именем набор данных (полей объекта), физически находящихся в памяти компьютера, и методов, имеющих доступ к ним. Имя используется для доступа к полям и методам, составляющим объект. В предельных случаях объект может не содержать полей или методов, а также не иметь имени. Любой объект относится к определенному классу. Класс содержит описание данных и операций над ними. В классе дается обобщенное описание некоторого набора родственных, реально существующих объектов. Объект – конкретный экземпляр класса. В качестве примера можно привести чертеж танка или его описание (класс) и реальный танк (экземпляр класса, или объект). Объектно-ориентированное программирование основано на принципах:абстрагирования данных;инкапсуляции; наследования; полиморфизма; «позднего связывания». Инкапсуляция (encapsulation) – принцип, объединяющий данные и код, манипулирующий этими данными, а также защищающий в первую очередь данные от прямого внешнего доступа и неправильного использования. Другими словами, доступ к данным класса возможен только посредством методов этого же класса. Наследование (inheritance) – это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним свойства и методы, характерные только для него. Наследование бывает двух видов:одиночное – класс (он же подкласс) имеет один и только один суперкласс (предок); множественное – класс может иметь любое количество предков (в Java запрещено). Полиморфизм (polymorphism) – механизм, использующий одно и то же имя метода для решения двух или более похожих, но несколько отличающихся задач. Целью полиморфизма применительно к ООП является использование одного имени для задания общих для класса действий. В более общем смысле концепцией полиморфизма является идея «один интерфейс, множество методов». Механизм «позднего связывания» в процессе выполнения программы опреде-ляет принадлежность объекта конкретному классу и производит вызов метода, относящегося к классу, объект которого был использован. Механизм «позднего связывания» позволяет определять версию полиморфного метода во время выполнения программы. Другими словами, иногда невозможно на этапе компиляции определить, какая версия переопределенного метода будет вызвана на том или ином шаге программы. При вызове метода класса он ищется в самом классе. Если метод существует, то он вызывается. Если же метод в текущем классе отсутствует, то обращение происходит к родительскому классу и вызываемый метод ищется у него. Если поиск неудачен, то он продолжается вверх по иерархическому дереву вплоть до корня (верхнего класса) иерархии.

2. Типы данных. Понятия переменной, простейшие типы, ссылочные типы, класс Class.

В языке Java используются базовые типы данных, значения которых размещаются в стековой памяти (stack). Эти типы обеспечивают более высокую производительность вычислений по сравнению с объектами. Кроме этого, для каждого базового типа имеются классы-оболочки, которые инкапсулируют данные базовых типов в объекты, располагаемые в динамической памяти (heap). Определено восемь базовых типов данных, размер каждого из которых остается неизменным независимо от платформы. Беззнаковых типов в Java не существует. Каждый тип данных определяет множество значений и их представление в памяти. Для каждого типа определен набор операций над его значениями. boolean( 8), byte(8), char(16), short (16), int(32), long (64), float (32) , double (64). В арифметических выражениях автоматически выполняются расширяющие

преобразования типа byte → short → int → long → float → double. Java автоматически расширяет тип каждого byte или short операнда до int в выражениях. Для сужающих преобразований необходимо производить явное преобразование вида (тип)значение. Например: byte b = (byte)128; //преобразование int в byte

Имена переменных не могут начинаться с цифры, в именах не могут использоваться символы арифметических и логических операторов, а также символ ‘#’. Применение символов ‘$’ и ‘_’ допустимо, в том числе и в первой позиции имени.

Для каждого класса и интерфейса в системе имеется представляющий его объект Class. Этот объект может использоваться для получения основных сведений о классе или интерфейсе и для создания новых объектов класса.

Класс Class позволяет перемещаться по иерархии типов в программе. Такая иерархия фактически становится частью программной среды, что облегчает процесс отладки и автоматического документирования, а также делает программу более последовательной. Кроме того, это открывает новые возможности работы с классами — в первую очередь для создания объектов (их тип может задаваться в виде строки) и вызова классов с использованием специальных приемов (например, загрузка по сети).Существует два способа получить объект Class: запросить его у имеющегося объекта методом getClass или искать его по уточненному (включающему все имена пакетов) имени статическим методом Class.forName. Простейшие методы Class предназначены для перемещения по иерархии типов.

3. Имена. Пакеты. Система именования элементов языка в Java. Область видимости имени.

Имена переменных не могут начинаться с цифры, в именах не могут использоваться символы арифметических и логических операторов, а также символ ‘#’. Применение символов ‘$’ и ‘_’ допустимо, в том числе и в первой позиции имени. Классы всегда взаимодействуют друг с другом и объединяются в пакеты. Из пакетов создаются модули, которые взаимодействуют друг с другом

только через ограниченное количество методов и классов, не имея никакого представления о процессах, происходящих внутри других модулей. Имя класса в пакете должно быть уникальным. Физически пакет представляет

собой каталог, в который помещаются программные файлы, содержащие реализацию классов. Любой класс Java относится к определенному пакету, который может быть

неименованным (unnamed или default package), если оператор package отсутствует. Оператор package имя, помещаемый в начале исходного программного файла, определяет именованный пакет, т.е. область в пространстве имен классов, где определяются имена классов, содержащихся в этом файле. Действие оператора package указывает на месторасположение файла относительно корневого каталога проекта. Например: package chapt06;

При этом программный файл будет помещен в подкаталог с названием chapt06. Имя пакета при обращении к классу из другого пакета присоединяется к имени класса: chapt06.Student. Внутри указанной области можно выделить подобласти: package chapt06.bsu; В реальных проектах пакеты часто именуются следующим образом: 1)обратный интернет-адрес производителя программного обеспечения, а именно для www.bsu.by получится by.bsu;

2) далее следует имя проекта, например: eun;

3) затем располагаются пакеты, определяющие собственно приложение. При использовании классов перед именем класса через точку надо добавлять полное имя пакета, к которому относится данный клас. Из названий пакетов можно определить, какие примерно классы в нем расположены, не заглядывая внутрь. При создании пакета всегда следует руководствоваться простым правилом: называть его именем простым, но отражающим смысл, логику поведения и функциональность объединенных в нем классов.