Объектно-ориентированное программирование на Java
Описание файла
PDF-файл из архива "Объектно-ориентированное программирование на Java", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
Объектно-ориентированноепрограммирование на JavaС.Ю. СкоробогатовВесна 20151 / 85Список литературы по модулюБазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторы1. Слайды лекций (могут меняться в течение семестра).www.dropbox.com/s/yku2is93uvhjtb8/module_java.pdf2. Б. Эккель.
Философия Java. Библиотека программиста.4-е издание. – СПб.: Питер, 2009.www.dropbox.com/s/e1r13frs7fmhtfh/Eckel.djvu3. Г. Шилдт. Java. Полное руководство. 8-е издание. – М.:Издательский дом «Вильямс», 2012.www.dropbox.com/s/4r5548q2yed50rl/Schildt.djvuСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияПакетыЗамыкания2 / 85История языка JavaОсновные этапы:БазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияПакетыЗамыканияДжеймс ГослингНачало 90-х: Oak – язык для программирования бытовых устройств.1995: Java 1.0 (разработка интернетприложений).1997: Java 1.1 (вложенные классы, рефлексия).1998/2000/2002: Java 1.2 (коллекции),Java 1.3, Java 1.4 (ассерты).2004/2006: Java 1.5 (обобщения, аннотации, перечисления, переменное колическтво параметров методов, расширенный for), Java 1.6.2011: Java 1.7 (новый синтаксический сахар, улучшеннаясхема обработки ислючений).2014: Java 1.8 (замыкания, функциональные интерфейсы).3 / 85Основные особенности JavaБазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияJIT-компиляция: компилятор Java порождает независимый от аппаратной платформы и операционной системыбайт-код, который транслируется в машинный код в процессе выполнения программы;Переносимость: виртуальные машины Java (JITкомпилятор + run-time + библиотеки классов) существуют практически для всех аппаратных платформ и операционных систем, перенос программы на другую платформу не требует её перекомпиляции;Автоматическое управление памятью: объекты, которые стали не нужны, автоматически удаляются сборщиком мусора;Безопасность: строгая статическая типизация, отсутствие арифметики указателей и прочих «небезопасных»возможностей.ПакетыЗамыкания4 / 85Установка Java Development Kit (JDK)БазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыПоследовательность действий для ОС Linux.1.
Перейти на страницу:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2. Согласиться с лицензионным соглашением и скачатьфайл jdk-8u31-linux-x64.tar.gz (или jdk-8u31-linuxi586.tar.gz в случае 32-разрядной системы).3. Разархивировать файл в домашний каталог, при этомпоявится подкаталог jdk1.8.0_31.4. Отредактировать файл .profile (или .bashrc), находящийся в домашнем каталоге, добавив в его конец строчки:export JAVA_HOME =$HOME / jdk1 .8.0 _31export PATH =$JAVA_HOME / bin :$PATHОбобщенияИсключения5. Перелогиниться или перезагрузить систему.ПакетыЗамыкания5 / 85Проверка работоспособности JDKБазовыесведенияВведениеОбъекты иклассыДля проверки работоспособности откройте терминал и выполните командуjavac - versionПоляПоляМетодыЭкземплярныеконструкторыЕсли JDK был правильно установлен, вы увидите сообщениеjavac 1.8.0 _31СозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияПакетыЗамыкания6 / 85Программа «Hello, World»БазовыесведенияВведениеОбъекты иклассыПрограмма на Java (HelloWorld.java):12Поля3Поля4Методы5Экземплярныеконструкторы6СозданиеобъектовСтатическиеконструкторыСубтипизация7public class HelloWorld{public static void main ( String [] args ){System .
out . println ( " Hello , ␣ world ! " );}}Компиляция:javac HelloWorld . javaНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыЗапуск:java HelloWorldОбобщенияИсключенияПакетыЗамыкания7 / 85Понятия объекта и инкапсуляцииБазовыесведенияВведениеОбъекты иклассыОпределение 1. Объект (object) – это самоописывающаяструктура данных, обладающая внутренним состоянием испособная обрабатывать передаваемые ей сообщения.ПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыВ языках программирования со статической проверкой (вчастности, в Java) набор сообщений, которые может обрабатывать объект, фиксирован на этапе компиляции программы. При этом передача объекту сообщения, которое он неможет обработать, выявляется на этапе компиляции.СубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияОпределение 2.
Инкапсуляция (incapsulation) – один изосновных принципов объектно-ориентированного программирования, заключающийся в том, что доступ к внутреннему состоянию объекта извне осуществляется только черезмеханизм передачи сообщений.ИсключенияПакетыЗамыкания8 / 85Понятие классаБазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияПакетыЗамыканияОбъект является самоописывающей структурой, потому чтосодержит информацию о классе, которому он принадлежит.Определение 3. Класс (class) – это тип данных, значениями которого являются объекты, имеющие сходное внутреннее состояние и обрабатывающие одинаковый набор сообщений.Класс можно рассматривать как шаблон для порожденияобъектов.
Поэтому объекты называют также экземплярамикласса (class instances).В языке Java все значения являются объектами, кроме значений примитивных типов: char (16-разрядный символUnicode), byte (знаковый, 8 бит), short (знаковый, 16 бит),int (знаковый, 32 бит), long (знаковый, 64 бит), float,double, boolean.Обратите внимание, все целые типы – знаковые.9 / 85Объявление классов в JavaБазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияВ языке Java классы делятся на публичные и непубличные.В каждом java-файле должен быть ровно один публичныйкласс, причём имя файла должно совпадать с именем класса.
Непубличных классов в файле может быть несколько.Непубличные классы видны только в пределах того файла,где они объявлены.Публичный класс объявляется следующим образом:public class Имя{...}В объявлении непубличного класса отсутствует ключевоеслово public.Обратите внимание на то, что точка с запятой после объявления класса не ставится.ПакетыЗамыкания10 / 85Члены классаБазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключенияПакетыЗамыканияВнутри фигурных скобок в объявлении класса располагаются объявления членов класса.
К членам класса относятся:экземплярные поля – обеспечивают хранение внутреннего состояния объектов;статические поля – предназначены для хранения данных, общих для всех объектов класса;экземплярные методы – отвечают за обработку передаваемых объекту сообщений;статические методы – выполняют действия, для которых не нужен доступ к конкретному объекту класса;экземплярные конструкторы – инициализируют только что созданные объекты класса;статический конструктор (набор static-блоков) –инициализирует статические поля класса;вложенные классы – главным образом, представляютобъекты, необходимые для реализации данного класса.11 / 85Доступ к членам классаВ общем случае, для доступа к членам класса используетсябинарная операция «.».
Её первый операнд – либо объект,либо класс, а второй операнд – имя члена класса.БазовыесведенияВведениеОбъекты иклассыПоляПоляМетодыЭкземплярныеконструкторыСозданиеобъектовСтатическиеконструкторыСубтипизацияНаследованиеАбстрактныеклассы и интерфейсыВложенныеклассыОбобщенияИсключения12person .
SetName ( " Вася " );// Вызов экз . методаint count = Person . count ; // Обращение к стат . полюОбъявления членов класса предваряются модификаторамидоступа, которые управляют доступом к членам класса:private доступ разрешён только из тела класса;без модификатора доступ разрешён для самого класса идля классов из того же пакета.protected доступ разрешён для самого класса, для классов из того же пакета, а также для наследников класса(пакеты и наследование мы рассмотрим позже);public доступ возможен откуда угодно.ПакетыЗамыкания12 / 85Экземплярные поляБазовыесведенияОпределение 4.
Экземплярное поле (instance field) – именованная составная часть внутреннего состояния объекта.ВведениеОбъекты иклассыМногие объектно-ориентированные языки допускают прямое обращение извне к экземплярным полям (С++, Java,C#, но не Ruby). Эта практика является нарушением инкапсуляции.В Java объявления экземплярных полей выглядят как объявления полей структур в языке C.