Программирование Java

Эффективное использование объектно-ориентированного языка программирования Jаvа. Синтаксис языка Java как очищенный вариант синтаксиса языка С++. Форма исходного файла Java. Методы программирования, классы и объекты. Параметры, массивы, интерфейс.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.09.2015
Размер файла 56,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ЦД КРИДО в г. Бишкек

Курсовая работа

По дисциплине: Программирование

Тема: Программирование Java

Студента Шалиф Альбина Шариповна

Содержание

  • Введение
  • Основная часть
  • 1. Программирование Java
  • 2. Объектно-ориентированное Java
  • Заключение
  • Глоссарий
  • Список использованных источников

Введение

Это статья писалась с той целью, чтобы помочь нам наиболее эффективно использовать язык программирования Jаvа. Ясность и простота имеют первостепенное значение. Правила, изложенные в этой курсовой, не охватывают все сто процентов практики, но они описывают самые лучшие приемы программирования. Нет необходимости покорно следовать этим правилам, но и нарушать их нужно, лишь имея на то вескую причину. Как и для многих других дисциплин, изучение искусства программирования заключается, для начало в освоении правил, а затем в изучении условий, когда они нарушаются. Эта курсовая предназначена для тех, кто уже хорошо владеет языком программирования Java. Речь идет о написании понятных, правильных, полезных, надежных, гибких программ, которые удобно сопровождать. Если вы сможете сделать это, то добиться необходимой производительности будет несложно.

Язык Java - это серьезный язык программирования и нам есть о чем рассказать. Итак, мы не станем погружаться в анализ рекламных обещаний и пытаться выяснить, что в них, правда, а что вымысел. Вместо этого мы достаточно подробно опишем язык Java именно как язык программирования (включая, разумеется, особенности, позволяющие использовать его для работы в Интернет, которые, собственно, и вызвали столько рекламной шумихи). После этого мы попытаемся отделить реальность от фантазий, объяснив, что язык Java действительно может, а что - нет.

На первых порах между рекламными обещаниями и реальными возможностями языка Java лежала пропасть. По мере его созревания технология становилась все более стабильной и надежной, а ожидания снизились до разумного уровня. Сейчас язык Java все шире используется для поддерживания связи между клиентами и ресурсами серверов

Несмотря на то, что эти важные приложения не поражают воображение, именно в этой области язык Java оказался наиболее полезным благодаря своей машинной независимости и возможностям сетевого программирования. Кроме того, язык Java захватил лидерство в области встроенных систем, став фактическим стандартом портативных устройств, виртуальных киосков, бортовых автомобильных компьютеров и т.п. Однако первые попытки переписать на языке Java широко распространенные программы для персональных компьютеров не увенчались успехом - полученные приложения оказались маломощными и медленными. С появлением новой версии некоторые из этих проблем удалось решить, и все же нужно признать, что пользователям, в общем-то, совершенно безразлично, на каком языке написаны купленные ими программы. Мы полагаем, что основные преимущества языка Java проявятся при создании новых видов устройств и приложений, а не при переписывании уже существующих программ. Язык программирования Java был тепло встречен мировым сообществом программистов и провайдеров Internet-услуг. Его преимущество для пользователей Internet и World Wide Web заключается в появлении безопасных и независимых приложений, которые могут использоваться в любом узле Internet. Программисты, создающие приложения на Java, пишут свой код всего один раз - им не приходится "переносить" свои приложения на все возможные программные и аппаратные платформы. Кроме того, Java используется как язык программирования общего назначения для реализации тех проектов, в которых платформенная независимость не так важна. Простота программирования и средства безопасности позволяют быстро создавать отлаженный код. Некоторые распространенные в других языках ошибки в программах на Java вообще не встречаются благодаря таким средствам, как сборка мусора и ссылки, безопасные по отношению к типам. Приложения, работающие в сетевых условиях и применяющие графический пользовательский интерфейс, которым приходится одновременно обслуживать несколько задач, и благодаря механизму исключений облегчает обработку ошибок. Несмотря на всю мощь своих встроенных средств, Java - это простой язык, который быстро осваивается программистами.

Язык Java проектировался с расчетом на максимальную переносимость и на минимальную зависимость от конкретной системы.

Основная часть

1. Программирование Java

Java, как и любой другой объектно-ориентированный язык программирования, располагает средствами построения классов и объектов. Каждый объект в Java имеет тип; им является класс, к которому принадлежит данный объект. В каждом классе есть члены двух видов: поля и методы. Полями называются переменные, содержащие данные класса и его объектов. В них хранятся результаты вычислений, выполняемых методами данного класса. Методы содержат исполняемый код класса. Методы состоят из операторов; эти операторы, а также способ вызова методов в конечном счете определяют процесс выполнения программы. Так может выглядеть объявление простого класса, представляющего точку на плоскости:

class Point {

public double x, y;

}

Класс Point содержит два поля с координатами x и y точки, и в нем нет ни одного метода. Подобное объявление класса определяет, как будут выглядеть объекты, созданные на его основе, и также задает поведение объектов с помощью инструкций. Чертеж приобретает наибольшую ценность после того, как к нему добавляются технические задания и инструкции. Члены класса могут обладать различными правами доступа. Объявление полей x и y класса Point с ключевым словом public означает, что любой метод программы, получивший доступ к Point, сможет прочитать или изменить эти поля. Разрешается ограничить доступ к данным предоставлять его лишь методам самого класса или связанных с ним классов. Объекты создаются посредством выражений, в которых используется ключевое слово new. Созданные на основе определения класса объекты часто называют экземплярами данного класса. В языке Java создаваемые объекты размещаются в области системной памяти, которая называется кучей (heap). Доступ к любому объекту осуществляется по ссылки на объект. Когда ссылка не относится ни к какому объекту, она равна null. Обычно между объектом и ссылкой не делается особых различий. И мы будем различать эти два понятия лишь там, где необходимо, но чаще всего термины "объект” и "ссылка на объект” будут часто употребляться. Возвращаясь к определенному выше классу Point, то мы разработаем графическое приложение, в котором приходится следить за множеством точек. Каждая точка представляется отдельным объектом Point. Вот как может выглядеть создание и инициализация объектов Point:

Point lowerLeft = new Point ();

Point upperRight = new Point ();

Point middlePoint = new Point ();

lowerLeft. x = 0.0;

lowerLeft. y = 0.0;

upperRight. x = 1280.0;

upperRight. y = 1024.0;

middlePoint. x = 640.0;

middlePoint. y = 512.0;

Статические поля. Статические методы обычно предназначаются для выполнения операций, специфичных для данного класса, и работают со статическими полями, а не с конкретными экземплярами класса. Методы класса объявляются с ключевым словом static и называются статическими методами. Метод означает, специфичный для каждого объекта, хотя в отдельных случаях, для большей ясности, может использоваться термин "нестатический метод”. Давайте вернемся к примеру с фабрикой, производящей плееры. Следующий серийный номер для нового изделия должен храниться на фабрике, а не в каждом объекте-плеере. Соответственно и метод, который работает с этим номером, должен быть статическим, а не методом, работающим с конкретными объектами плеерами. В реализации метода distance из предыдущего примера использован статический метод Math. sqrt для вычисления квадратного корня. Класс Math содержит множество методов для часто встречающихся математических операций. Эти методы объявлены статическими, так как они работают не с каким-то определенным объектом, но составляют внутри класса группу со сходными функциями. Статический метод не может напрямую обращаться к нестатическим членам. При вызове статического метода не существует ссылки на конкретный объект, для которого вызывается данный метод. Впрочем, передавая ссылку на конкретный объект в качестве параметра статического метода. Тем не менее, в общем случае статические методы выполняют свои функции на уровне всего класса, а нестатические методы работают с конкретными объектами. Статический метод, модифицирующий поля объектов, - примерно-то же самое, что и фабрика из нашего примера, которая пытается изменить серийный номер давно проданного плеера. Чаще всего нужно, чтобы значение поля одного объекта отличалось от значений одноименных полей во всех остальных объектах того же класса. Тем не менее, иногда возникает необходимость совместного использования полями объектами класса. Такие совместные поля также называются переменными класса, то есть переменными, относящимися ко всему классу, в отличие от переменных, относящихся к его отдельным объектам. Давайте представим, что производят плеер Sony. Каждому плееру присваивается серийный номер. В наших терминах это означает, что в каждом объекте имеется уникальное поле, в котором хранится значение номера. Дублировать эту информацию в каждом объекте-плеере было бы неразумно - нужна всего одна копия номера, которая хранится в переменном классе. Чтобы использовать поле для хранения информации, относящейся ко всему классу, следует объявить его с ключевым словом static, поэтому такие поля иногда называют статическими. Например, объект Point, представляющий начало координат, может встречаться достаточно часто, поэтому имеет смысл выделить ему отдельное статическое поле в классе Point: ublic static Point origin = new Point ().

Если это объявление встретится внутри объявления класса Point, то появится ровно один экземпляр данных с именем Point. origin, который всегда будет ссылаться на объект (0,0). Поле static будет присутствовать всегда, независимо от того, сколько существует объектов Point. Значения x и y равны нулю, потому что числовые поля, которым не было присвоено начального значения, по умолчанию инициализируются нулями. Класс System - стандартный класс Java, в котором имеется статическое поле с именем out, предназначенное для направления вывода программы в стандартный выходной поток. Термин "поле”, обычно имеется в виду поле, уникальное для каждого объекта, хотя в отдельных случаях для большей ясности может использоваться термин "нестатическое поле”

Методы и параметры. Объекты определенного выше класса Point могут быть изменены в любом фрагменте программы, в котором имеется ссылка на объект Point, поскольку поля этого класса объявлены с ключевым словом public. Класс Point представляет собой простейший класс. На самом деле иногда можно обойтись и простыми классами - например, при выполнении чисто внутренних задач пакета или когда для ваших целей хватает простейших типов данных.

Тем не менее, настоящие преимущества объектно-ориентированного программирования проявляются в возможности спрятать реализацию класса. В языке Java операции над классом осуществляются с помощью методов класса - инструкций, которые выполняются над данными объекта, чтобы получить нужный результат. В методах часто используются такие детали реализации класса, которые должны быть скрыты от всех остальных объектов. Данные скрываются в методах и становятся недоступными для всех прочих объектов - в этом заключается основной смысл данных. Каждый метод имеет ноль или более параметров. Метод может возвращать значение или объявляться с ключевым словом void, которое означает, что метод ничего не возвращает. Операторы метода содержатся в блоке между фигурными скобками { и }, которые следуют за именем метода и объявлением его сигнатуры. Сигнатурой называется имя метода, сопровождаемое числом и типом его параметров. Можно усовершенствовать класс Point и добавить в него простой метод clear, который выглядит так:

public void clear () {

x = 0;

y = 0;

}

Массивы. Простые переменные, содержащие всего одно значение, полезны, но их недостаточно. Скажем так, для разработки программы игры в карты требуется множество объектов Card, с которыми было бы оперировать как с единым целым. Для таких случаев в языке Java предусмотрены массивы. Массивом называется набор переменных, относящихся к одному типу. Доступ к элементам массива осуществляется посредством простых целочисленных индексов. В карточной игре объект Deck (колода) может выглядеть так: Сначала мы объявляем константу с именем DECK_SIZE, содержащую количество кард в колоде. Затем поле cards объявляется в виде массива типа Card - для того после имени типа в объявлении необходимо поставить квадратные скобки [и]. Размер массива определяется при его создании и не может быть изменен в будущем. Вызов метода print показывает, как производится доступ к элементам массива: индекс нужного элемента заключается в квадратные скобки [и], следующие за именем массива. Как нетрудно догадаться по тексту программы, в объекте-массиве имеется поле length, в котором хранится количество элементов в массиве. Границами массива являются целые числа 0 и length-1. Если попытаться обратиться к элементу массива, индекс которого выходит за эти пределы, то возбуждается исключение IndexOutOfBounds. В этом примере также демонстрируется новый механизм объявления переменных - переменная цикла объявлена в секции инициализации цикла for. Объявление переменной в секции инициализации - удобный и наглядный способ объявления простой переменной цикла. Такая конструкция допускается лишь при инициализации цикла for; вы не сможете объявить переменную при проверке условия в операторе if или while. Переменная цикла i существует лишь внутри оператора for. Переменная цикла, объявленная подобным образом, исчезает сразу же после его завершения - то означает, что ее имя может использоваться в качестве имени переменной в последующих операторах цикла.

Классы. Базовым элементом объектно-ориентированного программирования в языке Java является класс. Закрытые статические классы-члены обычно должны представлять составные части объекта, доступ к которым осуществляется через внешний класс. Например, рассмотрим экземпляр класса Мар, который сопоставляет ключи и значения. Внутри экземпляра Мар для каждой пары ключ обычно создается объект Entry. Хотя каждая такая запись ассоциируется со схемой, клиенту не надо обращаться к собственным методам этой записи (geyKey, getValue и setValue). Следовательно, использовать нестатические классы-члены для представления отдельных записей в схеме Мар было бы расточительностью, самое лучшее решение - закрытый статический класс-член. Если в декларации этой записи вы случайно пропустите модификатор statlc, схема будет работать, но каждая запись будет содержать ненужную ссылку на общую схему, напрасно занимая время и место в памяти.

Вдвойне важно правильно сделать выбор между статическим и нестатическим классом-членом, когда этот класс является открытым или защищенным членом класса, передаваемого клиентам. В этом случае класс-член является частью внешнего API, и в последующих версиях уже нельзя будет сделать нестатический класс-член статическим, не потеряв совместимости на уровне двоичных кодов.

Анонимные классы в языке программирования Java не имеет имени. Он не является членом содержащего его класса. Вместо того чтобы быть декларированным с остальными членами класса, он одновременно декларируется и порождает экземпляр в момент использования. Анонимный класс можно поместить в любом месте программы, где разрешается применять выражения. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический класс-член: в нестатическом контексте появляется окружающий его экземпляр.

Применение анонимных классов имеет несколько ограничений. Поскольку анонимный класс одновременно декларируется и порождает экземпляр, его можно использовать, только когда его экземпляр должен порождаться лишь в одном месте программы. Анонимный класс не имеет имени, поэтому может применяться только в том случае, если после порождения экземпляра не нужно на него ссылаться. Анонимный класс обычно реализует лишь методы своего интерфейса или суперкласса. Он не объявляет каких-либо новых методов, так как для доступа к ним нет поименованного типа. Поскольку анонимные классы стоят среди выражений, они должны быть очень короткими, возможно, строк двадцать или меньше. Использование более длинных анонимных Классов может усложнить программу с точки зрения ее чтения.

class Point {

}

Имя исходного файла Java должно соответствовать имени хранящегося в нем класса. Регистр букв важен и в имени класса, и в имени файла.

Как вы помните, класс - это шаблон для создания объекта. Класс определяет структуру объекта и его методы, образующие функциональный интерфейс. В процессе выполнения Java-программы система использует определения классов для создания представителей классов. Представители являются реальными объектами. Термины "представитель", "экземпляр" и "объект" взаимозаменяемы. Ниже приведена общая форма определения класса.

class имя_класса extends имя_суперкласса { type переменная1_объекта:

type переменная2_объекта:

type переменнаяN_объекта:

type имяметода1 (список_параметров) { тело метода;

}

type имяметода2 (список_параметров) { тело метода;

}

type имя методаМ (список_параметров) { тело метода;

}

}

Ключевое слово extends указывает на то, что "имя_класса" - это подкласс класса "имя_суперкласса". Во главе классовой иерархии Java стоит единственный ее встроенный класс - Object. Если вы хотите создать подкласс непосредственно этого класса, ключевое слово extends и следующее за ним имя суперкласса можно опустить - транслятор включит их в ваше определение автоматически. Примером может служить класс Point, приведенный ранее. Локальные классы, вероятно, относятся к категорий вложенных классов. Локальный класс можно декларировать везде, где разрешается декларировать локальную переменную, и он подчиняется тем же самым правилам видимости. Локальный класс имеет несколько признаков, объединяющих его с каждой из трех других категорий вложенных классов. Как и классы-члены, локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр тогда и только тогда, когда применяются в нестатическом контексте. Как и анонимные классы, они должны быть достаточно короткими, чтобы не мешать удобству чтения метода или инициализатора, в котором они содержатся.

Подведем итоги. Существуют четыре категории вложенных классов, каждая из которых занимает свое место. Если вложенный класс должен быть виден за пределами одного метода или он слишком длинный для того, чтобы его можно было удобно разместить в границах метода, используйте класс-член. Если каждому экземпляру класса-члена необходима ссылка на включающий его экземпляр, делайте его нестатическим, в остальных случаях он должен быть статическим. Предположим, что класс находится внутри метода. Если вам нужно создавать экземпляры этого класса только в одном месте программы и уже есть тип, который характеризует это класс, сделайте его анонимным классом. В противном случае это должен быть локальный класс.

Простые типы в Java не являются объектно-ориентированными, они аналогичны простым типам большинства традиционных языков программирования. В Java имеется восемь простых типов: - byte, short, int, long, char, float, double и boolean. Их можно разделить на четыре группы: Целые. К ним относятся типы byte, short, int и long. Эти типы предназначены для целых чисел со знаком. Типы с плавающей точкой - float и double. Они служат для представления чисел, имеющих дробную часть. Символьный тип char. Этот тип предназначен для представления элементов из таблицы символов, например, букв или цифр. Логический тип boolean. Это специальный тип, используемый для представления логических величин. В Java, в отличие от некоторых других языков, отсутствует автоматическое приведение типов. Несовпадение типов приводит не к предупреждению при трансляции, а к сообщению об ошибке. Для каждого типа строго определены наборы допустимых значений и разрешенных операций. Приведение типов (type casting) - одно из неприятных свойств C++, тем не менее приведение типов сохранено и в языке Java. Иногда возникают ситуации, когда у вас есть величина какого-то определенного типа, а вам нужно ее присвоить переменной другого типа. Для некоторых типов это можно проделать и без приведения типа, в таких случаях говорят об автоматическом преобразовании типов. В Java автоматическое преобразование возможно только в том случае, когда точности представления чисел переменной-приемника достаточно для хранения исходного значения. Такое преобразование происходит, например, при занесении литеральной константы или значения переменной типа byte или short в переменную типа int. Это называется расширением (widening) или повышением (promotion), поскольку тип меньшей разрядности расширяется (повышается) до большего совместимого типа. Размера типа int всегда достаточно для хранения чисел из диапазона, допустимого для типа byte, поэтому в подобных ситуациях оператора явного приведения типа не требуется. В большинстве случаев неверно, поэтому для занесения значения типа int в переменную типа byte необходимо использовать оператор приведения типа. Эту процедуру иногда называют сужением (narrowing), поскольку вы явно сообщаете транслятору, что величину необходимо преобразовать, чтобы она уместилась в переменную нужного вам типа. Для приведения величины к определенному типу перед ней нужно указать этот тип, заключенный в круглые скобки. В приведенном ниже фрагменте кода демонстрируется приведение типа источника (переменной типа int) к типу приемника (переменной типа byte). Если бы при такой операции целое значение выходило за границы допустимого для типа byte диапазона, оно было бы уменьшено путем деления по модулю на допустимый для byte диапазон (результат деления по модулю на число - это остаток от деления на это число).

программирование java объект класс

2. Объектно-ориентированное Java

Как отмечалось во вступлении, язык программирования Java является полностью объектно-ориентированным. Это означает, что для составления даже самой простой программы необходимо описать класс. Однако в языке программирования Java, кроме классов и объектов, есть, на что обратить внимание. Рассмотрение методов программирования в Java начнем с наиболее простых случаев. Некоторые базовые синтаксические конструкции как основу создания программы в Java, дадим более подробные объяснения по этому поводу, причем в контексте методов объектно-ориентированного программирования. Думается, такой подход, с одной стороны, позволит читателю, не знакомому с концепцией ООП, легче и быстрее усваивать новый материал, а затем плавно перейти к созданию реальных объектно-ориентированных программ в Java. С другой стороны, практически не пострадают те, кто знаком с методами ООП (например, программирующие на C++), поскольку представленный далее материал в любом случае важен для понимания принципов программирования в Java. Обычно программы пишут для того, чтобы обрабатывать данные. Методы и возможности по обработке данных в значительной степени зависят от типа данных. Язык Java относится к строго типизованным языкам. Это означает, что любая переменная в программе относится к определенному типу данных одному и только одному. В Java все данные можно разделить на: простые и ссылочные. Ссылочные данные реализуются через иерархию классов. Простые данные это скорее дань традиции. Забегая наперед, отметим, что для простых типов данных существуют ссылочные аналоги. Разница между простыми и ссылочными типами на практике проявляется при передаче аргументов методам. Простые типы данных передаются по значению, ссылочные через ссылку. И что простые типы данных являются, по сути, базовыми. В Java существует четыре группы базовых типов: для работы с целыми числами, для работы с числами в формате с плавающей точкой (действительные числа), символы и логический тип, таким образом, всего получается восемь базовых типов. Базовые типы Java перечислены в табл.1.1 В этой же таблице приведены названия классов-оболочек для базовых типов. Классы-оболочки используются в тех случаях, когда переменную соответствующего типа необходимо рассматривать как объект. В первую очередь стоит обратить внимание на целочисленные типы данных. В Java существует четыре типа целочисленных данных: byte, short, int и long. Отличаются типы количеством битов, выделяемых для записи значения соответствующего типа. Размер в битах увеличивается от 8 для типа byte до 32 для типа long (с шагом дискретности 8 бит). На практике выбор подходящего типа осуществляется в соответствии с предполагаемым диапазоном изменения значения переменных. Разумеется, для надежности разумно использовать наиболее "широкий" тип данных, однако при этом не следует забывать и о том, что системные ресурсы даже самого производительного компьютера не безграничны. Для работы с действительными числами используются типы float и double. С помощью этих типов реализуется формат числа с плавающей точкой. В этом формате действительное число задается посредством двух чисел: мантиссы. И показателя степени. Заданное таким образом число равно произведению мантиссы на десять в соответствующей второму числу степени. Поскольку размер в битах, выделяемый для типа double, в два раза больше размера для данных типа float, тип double называют типом действительных чисел двойной точности. На практике обычно используется тип double. Поскольку в Java для символьных данных (тип char) выделяется 16 бит, такая широта размаха позволяет охватить практически все имеющиеся и использующиеся на сегодня символы, включая китайские иероглифы. Этот демократизм, свойственный далеко не каждому языку программирования, является следствием курса разработчиков Java на создание универсального языка программирования, ориентированного на работу в Интернете. Все операторы Java можно разделить на четыре группы: арифметические, логические, побитовые и сравнения. Рассмотрим последовательно каждую группу операторов. Начнем с арифметических. Эти операторы перечислены в табл.1.2 Эти операторы имеют некоторые особенности. В первую очередь обращаем внимание на оператор деления /. Если операндами являются целые числа, в качестве значения возвращается результат целочисленного деления. Рассмотрим последовательность команд:

int a=5,b=2;

double x=a/b;

В данном примере переменная x получает значение 2.0, а не 2.5, как можно было бы ожидать. Дело в том, что сначала вычисляется выражение a/b. Поскольку операнды целочисленные, выполняется целочисленное деление. И только после этого полученное значение преобразуется к формату double и присваивается переменной x.

Для того чтобы при целочисленных операндах выполнялось обычное деление, перед выражением с оператором деления указывается в круглых скобках идентификатор типа double (или float). Например, так:

Int a=5,b=2;

double x= (double) a/b;

Теперь значение переменной xравно 2.5.

В Java, как и в С++, есть группа упрощенных арифметических операторов с присваиванием. Если op один из операторов сложения, умножения, деления и вычисления остатка, то упрощенная форма этого оператора с присваиванием имеет вид op=. Это тоже бинарный оператор, как и оператор op, а команда вида xop=y является эквивалентом команды x=x op y. Еще два исключительно полезных унарных операторы инкремента (++) и декремента (--). Действие оператора декремента сводится к увеличению на единицу значения операнда, а оператор декремента на единицу уменьшает операнд. Другими словами, команда x++ эквивалентна команде x=x+1, а команда x - эквивалентна команде x=x-1. У операторов инкремента и декремента есть не только представленная здесь постфиксная форма (оператор следует после операнда: x++ или x--), но и префиксная (оператор располагается перед операндом: ++x или - -x). С точки зрения действия на операнд нет разницы в том, префиксная или постфиксная формы оператора использованы. Однако если выражение с оператором инкремента или декремента является частью более сложного выражения. Если использована префиксная форма оператора, сначала изменяется значение операнда, а уже после этого вычисляется выражение. Если использована постфиксная форма оператора, сначала вычисляется выражение, а затем изменяется значение операнда. Рассмотрим небольшой пример:

int n,m;

n=10;

m=n++;

В этом случае после выполнения команд переменная n будет иметь значение 11, а переменная m - значение 10. На момент выполнения команды m=n++ значение переменной n равно 10. Поскольку в команде m=n++ использована, постфиксная

форма оператора инкремента, то сначала выполняется присваивание значения переменной m, а после этого значение переменной n увеличивается на единицу. Иной результат выполнения следующих команд:

int n,m;

n=10;

m=++n

Обе переменные (n и m) в этом случае имеют значение 11. Поскольку в команде m=++n использована префиксная форма инкремента, сначала на единицу увеличивается значение переменной n, а после этого значение переменной n присваивается переменной m. Следующую группу образуют логические операторы. Операндами логических операторов являются переменные и литералы типа boolean. Логические операторы Java перечислены в табл.1.3.

Интерфейс и пакеты. Пакет (package) - это некий контейнер, который используется для того, чтобы изолировать имена классов. Например, вы можете создать класс List, заключить его в пакет и не думать после этого о возможных конфликтах, которые могли бы возникнуть, если бы кто-нибудь еще создал класс с именем List.

Интерфейс - это явно указанная спецификация набора методов, которые должны быть представлены в классе, который реализует эту спецификацию. Реализация же этих методов в интерфейсе отсутствует. Подобно абстрактным классам интерфейсы обладают замечательным дополнительным свойством - их можно многократно наследовать. Конкретный класс может быть наследником лишь одного суперкласса, но зато в нем может быть реализовано неограниченное число интерфейсов.

Пакеты. Все идентификаторы, которые мы до сих пор использовали в наших примерах, располагались в одном и том же пространстве имен (name space). Это означает, что нам во избежание конфликтных ситуаций приходилось заботиться о том, чтобы у каждого класса было свое уникальное имя. Пакеты - это механизм, который служит как для работы с пространством имен, так и для ограничения видимости. У каждого файла java есть четыре одинаковых внутренних части, из которых мы до сих пор в наших примерах использовали только одну. Ниже приведена общая форма исходного файла Java.

одиночный оператор package (необязателен)

любое количество операторов import (необязательны)

одиночное объявление открытого (public) класса

любое количество закрытых (private) классов пакета (необязательны)

Первое, что может появиться в исходном файле Java - это оператор package, который сообщает транслятору, в каком пакете должны определяться содержащиеся в данном файле классы. Пакеты задают набор раздельных пространств имен, в которых хранятся имена классов. Если оператор package не указан, классы попадают в безымянное пространство имен, используемое по умолчанию. Если вы объявляете класс, как принадлежащий определенному пакету, например, package java. awt. image;

то и исходный код этого класса должен храниться в каталоге java/awt/image.

Ограничение доступа. Java предоставляет несколько уровней защиты, обеспечивающих возможность тонкой настройки области видимости данных и методов. Из-за наличия пакетов Java должна уметь работать еще с четырьмя категориями видимости между элементами классов: Подклассы в том же пакете.

Не подклассы в том же пакете. Подклассы в различных пакетах. Классы, которые не являются подклассами и не входят в тот же пакет.

Интерфейсы. Интерфейсы Java созданы для поддержки динамического выбора (resolution) методов во время выполнения программы. Интерфейсы похожи на классы, но в отличие от последних у интерфейсов нет переменных представителей, а в объявлениях методов отсутствует реализация. Класс может иметь любое количество интерфейсов. Все, что нужно сделать - это реализовать в классе полный набор методов всех интерфейсов. Сигнатуры таких методов класса должны точно совпадать с сигнатурами методов реализуемого в этом классе интерфейса. Интерфейсы обладают своей собственной иерархией, не пересекающейся с классовой иерархией наследования. Это дает возможность реализовать один и тот же интерфейс в различных классах, никак не связанных по линии классового наследования. Именно в этом и проявляется главная сила интерфейсов. Интерфейсы являются аналогом механизма множественного наследования в C++, но использовать их намного легче.

Работа со строками. В этой главе обсуждаются средства языка Java для работы со строками. В языках С и C++ отсутствует встроенная поддержка такого объекта, как строка. В них при необходимости передается адрес последовательности байтов, содержимое которых трактуется как символы до тех пор, пока не будет встречен нулевой байт, отмечающий конец строки. В пакет java. lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Этот класс, называемый String, не что иное, как объектное представление неизменяемого символьного массива. В этом классе есть методы, которые позволяют сравнивать строки, осуществлять в них поиск и извлекать определенные символы и подстроки. Класс StringBuffer используется тогда, когда строку после создания требуется изменять.

И String, и StringBuffer объявлены final, что означает, что ни от одного из этих классов нельзя производить подклассы. Это было сделано для того, чтобы можно было применить некоторые виды оптимизации позволяющие увеличить производительность при выполнении операций обработки строк.

Заключение

Как язык программирования Java перевыполнил свои рекламные обещания. Несомненно, это один из лучших языков, доступных серьезным программистам. Потенциально Java имеет все предпосылки, чтобы стать великим языком программирования, однако, вероятно, сейчас уже слишком поздно. Когда появляется новый язык программирования, немедленно возникает неприятная проблема его совместимости с программным обеспечением, созданным ранее. Более того, даже если изменения в эти программы можно внести без вмешательства в их текст, создателям языка. Оказывается, это сделано не за счет усовершенствования собственно языка. Это действительно необходимо, когда программы загружаются через Интернет для последующего выполнения под управлением разных операционных систем. Другое преимущество заключается в том, что синтаксис языка Java похож на синтаксис языка C++, и программистам, знающим языки C и С++, его изучение не составляет труда. Правда, для программистов, владеющих языком Visual Basic, этот синтаксис, возможно, будет непривычен. Кроме того, Java - полностью объектно-ориентированный язык, даже в большей степени, чем C++. Все сущности в языке Java являются объектами, за исключением немногих основных типов. Поскольку с помощью объектно-ориентированного программирования легко разрабатывать сложные проекты, оно заменило собой более древнее структурное программирование. Однако разработать еще один, слегка улучшенный, диалект языка С++ недостаточно. Принципиально важно, что разрабатывать программы, не содержащие ошибок, на языке Java легче, чем на языке С++. Разработчики языка Java долго размышляли о том, отчего программы, написанные на языке С++, так подвержены ошибкам. Они снабдили язык Java средствами, позволяющими исключить саму возможность создавать программы, в которых были бы скрыты наиболее распространенные ошибки. Для этого в языке Java сделано следующее: Исключена возможность явного выделения и освобождения памяти. Память в языке Java освобождается автоматически с помощью механизма сборки мусора. Программист гарантирован от ошибок, связанных с неправильным использованием памяти. Введены истинные массивы и запрещена арифметика указателей.

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

Синтаксис языка Java, по существу, представляет собой очищенный вариант синтаксиса языка С++. В этом языке нет заголовочных файлов, арифметики указателей, структур, объединений, перегрузки операторов, виртуальных базовых классов и т.п. Зная язык С++, перейти к синтаксису языка Java будет легко. Если обычно вы используете визуальную среду программирования (Visual Basic), язык Java покажется вам сложным. Его синтаксис часто выглядит довольно странным (хотя понять смысл выражения не составляет труда). Важнее то, что при работе на языке Java приходится намного больше программировать. Прелесть языка Visual Basic заключается в том, что его визуальная среда программирования позволяет почти автоматически создавать инфраструктуру приложения. Чтобы достичь того же результата с помощью языка Java, необходимо программировать вручную, но при этом получаются намного более короткие программы. Существует, однако, и третья разновидность сред программирования, позволяющих создавать программы с помощью технологии перетащить и опустить. Одна из целей языка - обеспечить разработку программ, которые можно было бы совершенно самостоятельно выполнять на небольших машинах. Попросту говоря, объектно-ориентированное программирование - это метод программирования, в центре внимания которого находятся данные, т.е. объекты и средства доступа к ним. Объектная ориентация за 30 лет уже доказала свою ценность, и без нее невозможно представить себе современный язык программирования.

Глоссарий

№ п/п

Понятие

Определение

1

Объектно-ориентированное программирование

это метод программирования, в центре внимания которого находятся данные, т.е. объекты и средства доступа к ним

2

Java

это простой язык, который быстро осваивается программистами.

3

Полями

называют переменные, содержащие данные класса и его объектов.

4

Метод

содержит исполняемый код класса.

5

Массив

это набор переменных, относящихся к одному типу.

6

Ссылочные

это данные реализуется через иерархию классов.

7

Интерфейс Java

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

8

Пакеты

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

9

Класс

это шаблон для создания объекта и определяет структуру объекта и его методы, образующие функциональный интерфейс.

10

Объекты

создаются посредством выражений, в которых используется ключевое слово new.

Список использованных источников

1. Патрик Нотон, Герберт Шилдт Полный справочник по Java. - Издательство "Диалектика", 1997

2. Дэвид Флэнэген Java in a Nutshell. - O'Reilly & Associates, Inc., 1997, Издательская группа BHV, Киев, 1998

3. Ренеган Э. Дж. (мл.) 1001 адрес WEB для программистов: Новейший путеводитель программиста по ресурсам World Wide Web, 1997. - 512с.

4. Сокольский М.В. Все об Intranet и Internet. - М.: Элиот, 1998. - 254с.

5. Майкл Эферган Java: справочник, 1998

6. Джо Вебер Технология Java в подлиннике. - QUE Corporation, 1996, "BHV-Санкт-Петербург", 1997

7. Майкл Томас, Пратик Пател, Алан Хадсон, Доналд Болл (мл.) Секреты программирования для Internet на Java. - Ventana Press, Ventana Communications Group, U. S. A., 1996, Издательство "Питер Пресс", 1997

8. И.Ю. Баженова Язык программирования Java, 1997

9. Аарон И. Волш Основы программирования на Java для World Wide Web. - Издательство "Диалектика", 1996

10. А.Н. Васильев - Java. Объектно-ориентированное программирование

11. Кен Арнольд, Джеймс Гослинг Язык программирования Java, Издательство "Питер-Пресс", 1997

Размещено на Allbest.ru

...

Подобные документы

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.

    курс лекций [547,2 K], добавлен 01.05.2014

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.

    курсовая работа [1,8 M], добавлен 16.09.2015

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Общая характеристика и оценка возможностей языка программирования си-шарп, его сходные и отличительные черты от С++ и Java. Разработка с помощью данного языка программирования лексического и синтаксического анализатора. Составление таблиц разбора.

    курсовая работа [111,6 K], добавлен 11.06.2010

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

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

    курсовая работа [333,5 K], добавлен 21.01.2013

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Архитектура уровня команд платформы Java, формат файла класса Java. Компилятор ассемблероподобного языка, позволяющий создавать файлы классов, корректно обрабатываемые реальной JVM, поддерживающий все команды байт-кода Java и важнейшие возможности JVM.

    курсовая работа [292,6 K], добавлен 17.09.2008

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Разработка игры "Экзамен" с применением объектно-ориентированного программирования и языка Java (в среде Eclipse Helios). Структура программы и алгоритм решения задачи. Описание методов и переменных. Экспериментальное тестирование и оценка программы.

    курсовая работа [122,5 K], добавлен 19.05.2011

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

  • Язык программирования Java, история и предпосылки его создания. Переменные, именованные константы, массивы, перечисления. Интерфейсы и обратные вызовы в Java. Удаленный вызов процедуры: общие сведения. Передача параметров при удаленном вызове процедур.

    курс лекций [526,7 K], добавлен 24.06.2009

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

    курсовая работа [42,3 K], добавлен 08.02.2011

  • Описание и установка интегрированной среды разработки Eclipse. Описание языка Java. Описание классов и методов, пакетов, использованных в программе, сервера и клиента. Разработка руководства пользователя для клиента и сервера. Пример работы чата.

    курсовая работа [443,5 K], добавлен 18.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.