Классы и объекты в Java.
Литература
1. Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java, 3-е изд. пер. с. англ. –М: изд. дом «Вильямс», 2002. 2. Таренбаум Э. Распределенные системы. Принципы и парадигмы. –СПб: Питер, 2003 – 877с. 3. Эммерих В. Конструирование распределенных объектов. Методы и средства программирования интероперабельных объектов в архитектурах OMG/CORBA, Microsoft/Com и Java/RMI. 4. Изимбал А. А., Анишина М.Л. Технология создания распределенных систем для профессионалов – СПб: Цель курса: привести основные сведения о языке Java а также общие сведения о РС, и технологиях создания РС; дать первичные навыки программирования на языке Java. Язык программирования Java
История и предпосылки
1991г. Группа инжинеров SUN занялась разработкой языка, который можно было бы использовать в бытовых устройствах. Идея – создать язык, который бы не зависил ни от машины, ни от процессора. За основу был взять синтаксис С++. Язык не был востребован. Решили написать браузер с использованием этой технологии. 1 версия языка появилась в 1996 году. 1998 году вышла версия языка Java 1.2 – полноценный язык. Язык платформенно независим. Недостаток – быстродействие. Программы выполняются под виртуальной машиной. Компиляция программ происходит в т.н. байткод, которые потом интерпретируется средой исполнения. В среде исполнения, в свою очередь, присутствует менеджер безопасности. Оcобености: 1. Мобильный код – одна программа, много вычислительных платформ. 2. Безопасный код – встроенная в язык защита от несанкционированного доступа к ресурсам компьютера. 3. Устойчивый код - обнаружение ошибок возможно на ранних стадиях проектирования. Больше нет ошибок управления памятью. Java написан на основе C++ – синтаксис очень похож. 1.2. Сопоставление с C++
1.2 Архитектура Java
Промежуточный код – байт код – виртуальной машины Java. Управляемый код не может содержать указателей. Обязательно должен присутствовать сборщик мусора.
Синтаксис Java
Простейшая программа: class Hello { public static void main(String[] args) { System.out.println(“Hello world!”); }} Модификаторы и функция main нужны, чтобы класс был приложением. String[] – массив. Так как в метод main не передается адрес объекта, то он объявлен с модификатором static, а адрес объекта не передается, так как до вызова никакого объекта не создавалось, то передавать нечего. class Fib {/** Вывод на экран последовательности чисел Фибоначчи, меньших 50 */ public static void main(String[] args) { int l = 1, ni = 1; System.out.println(l); while (ni < l) { System.out.println(ni); ni = l+ni; // новое значение ni l = ni-l; /* новое значение l */ } }}
Классы и объекты в Java.
Программа на языке Java – совокупность классов. Объявление класса: {public, final|abstract} class ClassName { [constructors] [variables] [methods] public static void main(String[] args) { … } } public – класс виден всем остальным классам (если не указан, класс виден только в своем пакете), final – от класса нельзя породить потомков, abstract – нельзя создать экземпляр класса. Функция main не обязательна, это точка входа в программу. Классы организуются в пакеты (аналог пространств имен). В одном файле может быть только один public-класс. Создание объекта: new ClassName(параметры конструктора). Возвращает ссылку на объект. Класс может содержать объявления конструкторов: public ClassName(параметры...) { ... } Если ни один конструктор не определен, неявно определяется конструктор без параметров, которые устанавливает все поля в значения по умолчанию (числа – в нуль, логические – в ложь, ссылки – в null). В первой строке конструктора можно вызвать другой конструктор: public MyClass(String a) { … } public MyClass() { this(“default”); … } Определение методов: {public|private|protected} {тип возвр. значения | void} ИмяМетода(параметры метода) { тело метода } public – метод доступен всем классам, private – только данному классу, protected – только данному классу и его наследникам, без указания спецификатора – метод доступен в пределах пакета. Определение поля: {public|private|protected} тип имя [= значение]; Инициализационный блок используется для установки начальных значений: [static] { операторы присваивания... } Статический инициализационный блок может инициализировать только статические переменные. Порядок инициализации объекта: 1. Все поля инициализируются значениями по умолчанию. 2. Срабатывают инициализаторы полей и инициализационные блоки в порядке их следования в коде. 3. Если в первой строке конструктора вызывается другой конструктор, он выполняется. 4. Выполняется конструктор. 5. В классе можно определить метод finalize(), который будет выполняться при сборке мусора. 1.5 Переменные, именованные константы, массивы, перечисления в Java
Переменные – простых типов и ссылочные. Простые непосредственно содержат значение, ссылочные – ссылку на объект. Ссылочным переменным можно присвоить null. Простые типы: int, short, long, byte, float, double, char, boolean. Беззнаковых типов нет. Размерность типов не зависит от платформы. Char всегда 2 байта. Для простых типов есть их объектные аналоги: Integer, Character и т.п. Константы обозначаются ключевым словом final (например, final double MAX = 5; - требуется явная инициализация при объявлении). Массив – объект, содержащий ссылки на другие объекты. MyType[] array = new MyType[5]; array[3] = new MyType(); int size = array.length; // 5 int[] iarr = { 1, 2, 3 }; Изначально всем элементам массива присваиваются значения по умолчанию. Класс java.util.Arrays содержит статические методы для работы с массивами: сравнение, сортировка, поиск и т.п. Перечисление – тип объекта, который может принимать ограниченное множество значений. Раньше для этого использовались классы, унаследованные от интерфейса Enumeration (методы hasMoreElements() и nextElement()). В Java 5 появился enum, как в C++. public enum MyEnum { FIRST, SECOND, THIRD }; Enum – это полноценный класс, его значения – экземпляры класса. Каждому значению можно сопоставить параметры конструктора: public enum MyEnum { FIRST(“first”), SECOND(“second”), THIRD(“third”); MyEnum(String arg) { text = arg; } String getText() { return text; } private String text; } Можно перебрать все значения enum в цикле for: for (MyEnum m : MyEnum.values()) doSomething(m);
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (162)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |