`
Читать книги » Книги » Компьютеры и Интернет » Программирование » Java: руководство для начинающих (ЛП) - Шилдт Герберт

Java: руководство для начинающих (ЛП) - Шилдт Герберт

1 ... 3 4 5 6 7 ... 133 ВПЕРЕД
Перейти на страницу:

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

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

Объектно-ориентированный подход к программированию позволяет разрабатывать достаточно сложные программы. С момента появления первого компьютера методология программирования претерпела ряд существенных изменений, связанных с возрастанием сложности программ. На заре вычислительной техники процесс программирования представлял собой ввод машинных команд в двоичной форме с пульта управления ЭВМ. В то время размеры программ не превышали нескольких сотен команд, и поэтому такой подход считался вполне приемлемым. Затем появился язык ассемблера. Символьное представление машинных команд и процедура компиляции позволили перейти к созданию более сложных программ. В связи с дальнейшим увеличением объема программного кода появились языки высокого уровня. Они стали теми инструментами, которые позволили программистам справиться с постепенным усложнением программ. Первым из широко распространенных языков высокого уровня стал FORTRAN. Разработка FORTRAN стала важным этапом в развитии языков программирования, но этот язык не вполне подходил для создания удобочитаемых программ.

В 1960-е годы начало зарождаться структурное программирование. Впоследствии для поддержки данного подхода был созданы такие языки, как С и Pascal. Благодаря структурированным языкам программирования появилась возможность очень просто создавать программы средней сложности. Главными свойствами структурированных языков стали поддержка независимых подпрограмм, локальных переменных, наличие расширенного набора управляющих конструкций и отсутствие оператора GOTO. Но, несмотря на то что структурированные языки стали мощными инструментами программирования, с увеличением объема и сложности проектов их возможности были быстро исчерпаны.

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

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

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

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

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

Данные и код внутри объекта могут быть закрытыми (private) или открытыми (public). Закрытый код или данные доступны только элементам, содержащимся в том же самом объекте. Поэтому обратиться к такому коду или данным вне пределов объекта невозможно. Если код или данные являются открытыми, то к ним можно обращаться из любой части программы (несмотря на то, что они находятся внутри объекта). Как правило, открытые элементы объекта используются для создания управляемого интерфейса к его закрытым элементам.

Основной языковой конструкцией, поддерживающей инкапсуляцию в Java, является класс. Классы будут подробнее рассматриваться далее в этой книге, но о них нужно сказать несколько слов уже теперь. Класс определяет тип объекта. В нем определяются как данные, так и код, выполняющий определенные действия над этими данными. В Java определение или так называемая спецификация класса служит для построения объектов. Объекты представляют собой экземпляры классов. Следовательно, класс — это ряд “чертежей”, по которым строится объект.

Код и данные в составе класса называются членами класса. Данные, определенные в составе класса, принято называть переменными-членами или переменными экземпляра, а код, выполняющий действия над этими данными, — методами-членами, или просто методами. Метод — это термин, которым в Java принято обозначать подпрограмму. Если вы знакомы с языками C/C++, то, вероятно, знаете, что в этих языках для той же самой цели служит термин функция.Полиморфизм

Полиморфизм (от греческого слова, означающего “много форм”) — это свойство, позволяющее с помощью одного интерфейса обращаться к общему ряду действий. Конкретное действие определяется ситуацией. В качестве примера, позволяющего лучше понять принцип полиморфизма, можно привести руль автомобиля. Руль (т.е. интерфейс) остается одним и тем же, независимо от того, какой именно механизм рулевого управления применяется в автомобиле, будь то зубчатая, реечная передача или гидроусилитель. Таким образом, зная, как обращаться с рулем, вы можете управлять автомобилем любого типа.

Тот же самый принцип применяется и в программировании. Рассмотрим в качестве примера стек (структуру данных, организованных по принципу “последним пришел — первым обслужен”). Допустим, в программе требуются три разнотипных стека. Первый стек служит для хранения целочисленных значений, второй — для хранения значений с плавающей точкой и третий — для хранения символьных значений. Каждый стек реализуется с помощью одного и того же алгоритма, несмотря на то, что в стеках хранятся разнотипные данные. На языке, не поддерживающем ООП, пришлось бы создавать три разных ряда процедур управления стеками, присвоив им разные имена. А на Java благодаря полиморфизму можно создать один общий ряд процедур управления стеками, который будет действовать по-разному в зависимости от конкретного типа стека. Таким образом, зная, как работать с одним стеком, можно обращаться со всеми тремя стеками.

1 ... 3 4 5 6 7 ... 133 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Java: руководство для начинающих (ЛП) - Шилдт Герберт, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)