Часть 1. Основы ООП. 1.1. Объекты и инкапсуляция..

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



Advertisements
Похожие презентации
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Advertisements

СТРОКИ Работа со строками. Последовательность выполнения операторов int age = 45; String s = "Не is " + age + " years old."; age не String, а переменная.
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
Лекция 13. Введение в ООП. Часть 4 Красс Александр СПбГУ ИТМО, 2008.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
1 Контрольное зачетное задание (0, 0)(0, m-1) (n-1, 0)(n-1, m-1) Дано прямоугольное поле, расчерченное на клетки: n клеток в высоту и m клеток в ширину.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Основы информатики Массивы. Указатели. Заикин Олег Сергеевич
Лекция 12 Перегрузка операторов. Часть 2. Подбельский гл. 9.7, Страуструп гл. 11, Мейрс п. 11,15-17,19. Перегрузка копирующего конструктора T(const T&)
1 Работа со строками в Java В языках С и C++ отсутствует встроенная поддержка такого объекта, как строка. В этих ЯП при необходимости передается адрес.
Java. Part 2. Спецификаторы доступа public private protected не указан – доступ в пределах пакета Могут использоваться перед классами, методами, полями.
Подбор материала и презентация: Сазонов Д.О. Кафедра ПМиЭММ ВГТА Динамические объекты, ссылки.
СИМВОЛЬНЫЕ СТРОКИ С++. ОБЪЯВЛЕНИЕ СИМВОЛЬНЫХ СТРОК В ПРОГРАММАХ В C++ символьные строки хранятся в массиве типа char, который заканчивается символом NULL.
Test 6 Вопрос 1. Как можно уничтожить объект в Java? a)присвоить null всем ссылкам на объект b)вызвать Runtime.getRuntime().gc() c)вызвать метод finalize()
АССОЦИАТИВНЫЕ КОЛЛЕКЦИИ Лекция 6 1. Отличие от последовательных 2 В последовательной коллекции каждый элемент ассоциируется с номером, начиная с 0. В.
Переменные и основные типы переменных на JAVA Выполнил учитель информатики и ИКТ МБОУ СОШ р.п. Евлашево Горелочкин Н.К.
Переменные: тип, имя, значение НАЧАЛА ПРОГРАММИРОВАНИЯ.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Лекция 31. Динамическая информация о типе Красс Александр СПбГУ ИТМО, 2009.
Транксрипт:

Часть 1. Основы ООП Объекты и инкапсуляция.

Типы данных Большинство языков программирования предоставляют примитивные типы данных (целое число, число с плавающей точкой) и массивы. В C++ размер динамического массива определяется размером региона памяти, используемого для его хранения. Размер региона является самостоятельным данным.

Составные типы данных Зачастую удобно работать с набором сходных данных как с единым целым: комплексное число, строка. В C для хранения набора разнотипных значений используются структуры. Зачастую значения полей структуры существенно связаны.

Строки в C Hello,world!\0 Маркер конца строки Массив символов строки (char [14])

Строки в C Регион памяти занят под массив char. Последний элемент – 0. Размер региона – размер строки. Операции – серия функций: strlen, strcmp, strcat, strcpy. Легко забыть поставить 0. Легко перейти границу. Легко забыть освободить память.

Конкатенация строк char * strcat(char * dest, const char * src) { char * destEnd = dest; while (*destEnd != '\000') destEnd++; const char * srcPos = src; while (*srcPos != '\000') { *destEnd = *srcPos; srcPos++, destEnd++; } *destEnd = '\000'; return dest; }

Инвариантость typedef struct { char * data; unsigned int size; } string; Операции сохраняют правильность связей. Если пользователь может нарушить связь между данными, он это сделает.

Инкапсуляция Никакие (или почти никакие) данные составной структуры нельзя напрямую писать и читать. Работа с переменной составного (объектного) типа происходит только (или почти только) при помощи предоставляемых операций.

Объект = данные + операции string S = mama mila ramu; // for ( int i = 0; i < S.length(); i++ ) cout

Строки в Java String A = mama mila ramu; char data[] = {'a', 'b', 'c'}; String str2 = new String(data); A.compareTo ( B ); // int A = B.concat ( C ); A.equals ( B ); // bool S = S.substring ( 1, 5 ); S = S.toLowerCase(); System.out.println ( S= + S );

Оператор присваивания Переменная объектного типа – ссылка. Human A = new Human ( Ivanov, Ivan, Ivanovich ); System.out.println ( A.calcFIO() ); // Ivanov I. I. Human B = A; B.setPatronimic ( Petrovich ); Чему равно A.getPatronimic() ?

Оператор сравнения Human C = new Human ( Ivanov, Ivan, Petrovich ); Чему равно A == C ? Оператор сравнения – это проверка на идентичность объектов, а не на равенство имеющихся у них данных.

Что умеет делать каждый объект в Java? A.clone () – операция, возвращающая копию объекта. A.equals ( B ) – операция, возвращающая результат сравнения двух объектов. A.toString() – операция, возвращающая строковое представление объекта.

Класс Одинаковые объекты – принадлежат одному классу. Класс – единица программы (.java ), определяющая новый тип данных в границах одного модуля. public class Human { // Java... }

Данные private String Name; // Java private String Surname; private String Patronimic; private: // C++ string Name; string Surname; string Patronimic;

Операции В C++ и Java операции над объектами называются методами объекта. public String getName(); public String setName(String aName); public String getFIO(); public Human (String aName, String aSurname, String aPatr);