Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич ddk@cs.msu.su Кафедра АСВК, Лаборатория Вычислительных комплексов.

Презентация:



Advertisements
Похожие презентации
Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов.
Advertisements

Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов.
Типы данных Инна Исаева. Переменные Переменная - это как ящик, в котором можно хранить данные. Каждая переменная имеет своё имя, она служит для хранения.
Java, каф.ОСУ, АВТФ1 Определение классов и методов Java- программа состоит из объектов различных классов, взаимодействующих друг с другом. Каждое.
Test 6 Вопрос 1. Как можно уничтожить объект в Java? a)присвоить null всем ссылкам на объект b)вызвать Runtime.getRuntime().gc() c)вызвать метод finalize()
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
b5_java_s4
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Лекция 2 Наследование Наследование в Java имеет тот же смысл, что и в С++. Однако наследование в Java осуществляется при помощи ключевого слова extends.
Кафедра ОСУ, Java 2007 Слайд 1 Определение классов и методов Java- программа состоит из объектов различных классов, взаимодействующих друг.
Изучение динамического определения типов. Класс Class. Динамическая загрузка и инстанцирование классов. В Java вся информация о классе хранится в специальном.
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Программная инженерия Андрей Дмитриев ©
Создание программ на Java Управляющие структуры языка, объявление классов и методов, компиляция и запуск программ.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Практическое использование Java Макаревич Л. Г.. Инсталляция Java Документация в docs Прописать PATH (каталог bin в JSDK) Прописать CLASSPATH (путь к.
Лекция 3 Принципы объектно- ориентированного программирования.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
1 Java 1. ВВЕДЕНИЕ В КЛАССЫ И ОБЪЕКТЫ. 2 ООП Базовый способ борьбы со сложностью программных продуктов. Методология программирования, основанная на представлении.
Транксрипт:

Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов

Лекция 3. «Beyond the C». Объектно-ориентированное программирование в Java

Развитие технологии программирования Программирование в терминах операторов Программирование в терминах процедур и функций Программирование в терминах классов

Основной принцип программиста KISS Keep It Sweet and Simple Keep It Simple Stupid

Абстрактные типы данных АТД – набор данных и операций для работы с ними. Примеры АТД: Строки в Java Cтек, очередь

Абстрактные типы данных: зачем? Группировка родственных операций и данных Упрощение за счет построения более высокого уровня абстракции Возможность моделировать сущности реального мира Изоляция сложности. Упрощение за счет сокрытия деталей реализации Повышение удобочитаемости и понятности кода Ограничение влияния изменений Локальность изменений кода => Снижение сложности

Реализация АТД в Java Классы

Реализация АТД в Java Объекты

Реализация АТД в Java Классы и Объекты

Описание класса

Пример описания класса public class Spot { // переменные – члены класса public int x, y; private int size; // конструктор public Spot() { x = -1; y = -1; size = 1; } // методы – члены класса public void setSize(int newSize) { if (newSize >= 0) { size = newSize; } public int getSize() { return size; } }

Пример создания объекта класса private Spot spot = null; spot = new Spot(); System.out.println(spot.getSize());

Жизненный цикл объекта Описание класса public class MyClass { int me; MyClass () { me = 1; } Описание переменной, которая будет ссылаться на объект класса MyClass myobject; Создание объекта класса и инициализация объекта класса myobject = new MyClass(); Удаление объекта: garbage collector, finalize

Описание переменных - членов класса ЭлементЗначение accessLevel (Optional) Access level for the variable static (Optional) Declares a class variable final (Optional) Indicates that the variable is a constant type name Тип и имя переменной public static final int myVar;

Описание методов - членов класса public int setMe(int me) { this.me = me; return this.me; } ElementFunction accessLevel (Optional) Access level static (Optional) Declares a class method abstract (Optional) Indicates that the method is not implemented final (Optional) Indicates that the method cannot be overridden

Контроль доступа SpecifierClassPackageSubclassWorld private YNNN no specifier YYNN protected YYYN public YYYY

Статические члены класса public class AClass { public int instanceInteger = 0; public int instanceMethod() { return instanceInteger; } public static int classInteger = 0; public static int classMethod() { return classInteger; }

Наследование классов

Иерархия наследования

Пример наследования public class Animal { public void override() { System.out.println("in Animal."); } public class Cat extends Animal { public void override() { System.out.println("in Cat."); }

Использование super при наследовании public class Subclass extends Superclass { //hides aVariable in Superclass public boolean aVariable; public void aMethod() { //overrides aMethod in Superclass aVariable = false; super.aMethod(); System.out.println(aVariable); System.out.println(super.aVariable); }

Реализация АТД в Java Интерфейсы Интерфейс определяет тип данных Интерфейс – именованный набор объявлений методов Интерфейс определяет внешнее представление АТД, с которым работает тот, кто использует класс.

Описание интерфейсов

Пример использования интерфейсов public interface StockWatcher { void valueChanged(TickerSymbol tickerSymbol, BigDecimal newValue); } public class StockApplet implements StockWatcher { public void valueChanged(TickerSymbol tickerSymbol, BigDecimal newValue) { switch (tickerSymbol) { case SUNW:... break; case CSCO:... break; default:... break; }

Пакеты, классы и файлы package su.msu.cs.lvk.portal.dao; import java.sql.Connection; import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.datasource.DataSourceUtils; public class AdmissionDAO { private DataSource dataSource; public Admission load(long id) throws SQLException { Connection conn = DataSourceUtils.getConnection(dataSource); … > ls su/msu/cs/lvk/portal/dao/ AdmissionDAO.java