
- •Понятие информационного ресурса. Ит: определение, способы использования
- •2. Цель, методы и средства создания информационных ресурсов(ир)
- •1. Математические – совокупность моделей разного уровня(от глобальных моделей принятия решения до частных моделей реализации информационных процессов);
- •2. Технические – средства реализации информационных процессов. Сюда входят вычислительные машины и средства на их основе;
- •3. Алгоритмические – алгоритмы реализации математических средств;
- •3. Протоколы tcp/ip применительно к ир
- •4. Сеть, структура сети, маска подсети
- •5. Мосты в сетях tcp/ip. Доменные имена узлов.
- •6. Архитектура mainframe
- •7. Архитектура «Клиент-сервер»
- •Преимущества
- •Недостатки
- •8. Архитектура Intranet.
- •9. Программирование в web: доступ к бд на стороне сервера.
- •10. Программирование в web: доступ к бд на стороне клиента.
- •11. Синтаксис url. Протокол http.
- •12. Передача данных форм. Кодирование в url.
- •13. Стандартный ввод и метод Post.
- •14. Интерфейс Windows cgi. Файлы данных cgi.Интерфейс Windows cgi.
- •15 Файлы данных cgi.
- •15. Обработка результатов на сервере в сети при передаче данных.
- •16. Директивы включения на стороне сервера (ssi).
- •17. Понятие безопасности web-сервера. Принципы безопасности web-сервера.
- •18. Решение вопросов безопасности для web-сервера.
- •19. Характеристики языка Java.
- •20 Байткоды.
- •21 Средства разработки Java.
- •22 Базовая модель Java 1.0.
- •23 Типы данных, переменные и массивы в Java. Преобразование типов в Java. Типы данных
- •Массивы
- •24. Область видимости и время жизни переменных в Java.
- •25. Классы Java. Определение класса в Java. Создание объекта класса.
- •26 Методы Java. Определение методов в Java. Конструкторы Java.
- •27 Перегрузка методов в Java. Перегрузка конструкторов в Java.
- •28 Использование объектов в качестве параметров.
- •29 Использование ключевого слова this
- •30 Механизм финализации в Java. Сбор мусора.
- •31 Апплеты в Java. Характеристики апплетов.
- •32 Структура аплета.
- •33 Тэги апплета.
- •34 Обработка событий апплета, методы апплета.
- •События, генерируемые клавиатурой
- •35 Методы апплетов в Java.
- •36 Модели обработки событий Java 1.0.
- •37 Размещение объектов для графического пользовательского интерфейса. Диспетчера компоновки
- •38 Использование меню. Окна Frame
- •39 Работа с изображениями.
- •40 Динамическая диспетчеризация методов в Java.
- •41 Абстрактные классы в Java.
- •42 Классы Vector и Rectangle.
- •43 Многопоточное программирование в Java.
- •44 Создание потока. Синхронизация потоков в Java
- •45 Классы пакетов java.Io и java.Net.
- •46 Ввод и вывод в Java
- •47 Новые пакеты Java и особенности Java 1.1
- •48 Встроенные классы и интерфейсы в Java
- •49 Классы-члены в Java
- •50 Новый синтаксис для классов-членов
- •51 Локальные классы
- •52 Анонимные классы.
- •53 Модель обработки событий Java 1.1.
- •55. Использование jar-файлов
- •61. Безопасность Ява-программ
- •Защита виртуальной машины Ява. Верификация файлов ява-программ
- •62. Контроль доступа в Ява с использованием технологии «песочницы»
40 Динамическая диспетчеризация методов в Java.
Переменная, являющаяся ссылкой на объект суперкласса может ссылаться на объект любого подкласса, производного от этого суперкласса.
Box box1 = new Box();
SubBox box2 = new SubBox();
box1 = box2; // нет ошибки
Однако, необходимо помнить, что возможность доступа к элементам определяется не типом объекта, на который осуществляется ссылка, а типом самой переменной ссылки. Т.о. при присвоении значения ссылки на объект подкласса переменной, являющейся ссылкой на объект суперкласса, доступ возможен только к тем членам класса, которые определены в суперклассе.
Пример: Имеется суперкласс Box с методом volume() и его подкласс WeightBox с методом weight().
WeightBox box1 = new WeightBox();
Box box2 = new Box();
box1.volume();
box2 = box1;
box2.volume();
box2.weight(); // ошибка: метод недоступен
Последний метод в данном случае недоступен.
Перекрытие методов лежит в основе одного из принципов языка Java – динамической диспетчеризации методов. Это механизм, посредством которого, вызов перекрытого метода осуществляется во время выполнения программы, а не на этапе компиляции. Динамическая диспетчеризация методов является способом обеспечения полиморфизма в Java. Определяющим параметром при выборе перекрытого метода является тип объекта, на который ссылается ссылка, а не тип самой ссылки. Если в суперклассе определен метод, перекрытый впоследствии в подклассе, то при ссылке переменной на объекты различных типов, выполняются различные версии этого метода.
41 Абстрактные классы в Java.
Иногда необходимо определить суперкласс, в котором задается некая абстрактная структура без полной (конкретной) реализации всех методов, причем в классе описывается только природа методов возвращаемый тип, название метода, список аргументов и их типы), реализация которых будет описана в подклассах.
Иногда возникает ситуация, когда метод более предпочтительно реализовать в классе потомке. Например, класс «Фигура» может иметь метод «рисовать», Известно, что фигуру можно рисовать, но неизвестно каким образом. Метод «рисовать» получает конкретную реализацию уже в потомках класса «Фигура» (например в классе «Линия»).
В Java есть возможность, позволяющая убедится, что в подклассе перекрыты все необходимые методы. Для этого подобные методы объявляются как абстрактные и оставляются без реализации.
Используется следующая форма объявления таких методов:
abstract тип имя (параметры);
Любой класс, содержащий один или несколько абстрактных методов также является абстрактным. (перед словом class пишется abstract).
У такого класса не может быть объектов (экземпляров класса) Абстрактными не могут быть конструкторы и статические методы. Абстрактные классы могут иметь различные методы с реализацией. Каждый подкласс должен либо включать реализацию всех абстрактных методов, описанных в подклассе, либо также являться абстрактным.
Несмотря на то, что нельзя создавать объекты абстрактных классов, их можно использовать для создания ссылок на объекты.
Пример:
abstract class Figure{
double dim1, dim2;
Figure (double a, double b){dim1=a; dim2=b;}
abstract double area();
}
class Rect extends Figure {
Rect (double a, double b){super(a,b);}
double area(){ return dim1*dim2;}
}
class Triangle extends Figure{
Triangle(double a, double b){super(a,b);}
double area(){ return dim1*dim2/2;}
}
class Demo{
public Demo{
Rect r = new Rect(5.0,6.0);
Triangle t = new Triangle(7.0,8.0);
Figure f;
f = r;
f.area();
f = t;
f.area();
}}