Анатомия класса. Схожесть с др. языками С# похож на язык Java в том, что он требует, чтобы вся программная логика была заключена в определения типов В.

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



Advertisements
Похожие презентации
Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
Advertisements

Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
С# и ООП Формальное определение класса с C# Класс в C# - это пользовательский тип данных (user defined type), который состоит из данных (часто называемых.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Создание клонируемых объектов (интерфейс IClonable)
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
1 Классы в Java Ключевое слово class означает: Я говорю тебе, как выглядит новый тип объекта. Класс является базовым элементом объектно-ориентированного.
.NET framework Колотаев А.В.
1 Методы Java Методы класса – это подпрограммы, присоединенные к конкретным определениям классов. Они описываются внутри определения класса на том же уровне,
Лекция 10 ОбъектыЛекция 10 ОбъектыООП Инкапсуляция Возможность совместного хранения данных и кода для их обработки Наследование Возможность расширять существующие.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Делегаты Как созданные объекты могут посылать сообщения тем объектам, которые их породили? При программировании под Windows на С и C++ основное средство.
ЛЕКЦИЯ 7 КЛАССЫ ПАМЯТИ И ОБЛАСТЬ ДЕЙСТВИЯ ОБЪЕКТОВ.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Лекция 4. Введение в С++ Наследование, множественное наследование. Конструкторы, деструкторы. Виртуальные функции.
Лекция 8. Введение в ООП. Часть 1 Красс Александр СПбГУ ИТМО, 2008.
В С# предусмотрены средства для создания пользовательских классов-контейнеров, к внутренним элементам которых можно обращаться при помощи того же оператора.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Основы ООП и C# Работа с объектами и классами. Классы Класс специальный тип данных для описания объектов. Он определяет данные и поведение типа. Определение.
Транксрипт:

Анатомия класса. Схожесть с др. языками С# похож на язык Java в том, что он требует, чтобы вся программная логика была заключена в определения типов В отличие от С (и C++) глобальные функции и глобальные переменные в чистом видев С# использовать нельзя.

Определение простейшего класса в С# using System: class HelloClass { public static int Main(string[] args) { Console.WriteLine ("Hello, World"); return 0; }

Определение простейшего класса в С# ключевое слово publiс в определении метода означает, что этот метод будет доступен извне, а ключевое слово statiс говорит о том, что этот метод выступает как класс, а не как отдельный объект и будет доступен,когда еще не создано ни одного экземпляра объекта данного класса.

Объявление Main() public static void Main (string[] args); public static void Maln() { public static int Maln() }

Обработка параметров строки using System; class HelloClass { public static int Main (string[] args) { for(int x=0; x < args. Length; x++) {

Обработка параметров строки Console. WnteLine('Arg: {0}", args[x]): } Console. WriteLine("Hello. World!"); return 0; }}

Создание объектов: конструкторы «Класс» и «объект» - два разных понятия. В отличие от класса объектом называется конкретный экземпляр определенного класса, с помощью которого обычно и производятся определенные действия. Для создания объекта используется слово «new»

Создание объектов: конструкторы Using System; class HelloClass { public static int Main(string[] args) { HelloClass cl = new HelloClassO; HelloClass c2; с2 = new HelloClassO; return 0; } }

конструкторы using System; class HelloClass { public HelloClass() { Console.WriteLine(Default ctor called!") } public HelloClass(int x, int у) {

конструкторы Console.WriteLine("Custom ctor called!"); intX = x; intY = y; } public int intX, intY; public static int Main(string[] args)

конструкторы { HelloClass c1 = new HelloClass(); Console.WriteLine("c1.intX = {0)\nc1.intY = {1}\n", c1.lntX, c1.intY); HelloClass с2 = new HelloClass(100, 200); Console.WnteLine("c2.intX = {0}\nc2.intY = {l}\n", c2.intX. c2.intY); return 0;

Инициализация членов можно инициализировать переменные пря- мо в момент их объявления: class Text { private int Mylnt = 90; private string MyString = "My initial value"; private HotRod viper = new HotRod {200, "Chucky, Color.Red); }

Ввод и вывод В большинстве созданных нами приложений использовался класс System. Console один из многих классов, определенных внутри пространства имен System. Главные методы класса Consolе это методы ReadLine() и WriteLlne() (оба этих метода определены как статические).

Средства форматирования строк в С# using System; class BasicIO() { public static void Main(string[] args) { int thelnt = 90:

Средства форматирования строк в С# float theFloat = 9.99; BasicIO my10 - new BasicIO(); Console.WnteLine( Int is: {0}\nFloat is: {1}\nYou are: {2}, thelnt, theFloat, mylO.ToStringO): }

Средства форматирования строк в С# В каждом подстановочном выражении при желании можно использовать параметры форматирования, представленные в табл.

Средства форматирования строк в С# С или с D или d Е или е Используется для вывода значений в денежном (currency) формате. По умолчанию перед выводимым значением подставляется символ доллара ($), хотя можно отменить подстановку этого символа при помощи объекта NumberFormatlnfo Используется для вывода десятичных значений. После этого символа можно указать количество выводимых символов после запятой Для вывода значений в экспоненциальном формате

Средства форматирования строк в С# F или f G или g N или п X или х Вывод значений с фиксированной точностью Общий (general) формат. Применяется для вывода значений с фиксированной точностью или в экспоненциальном формате N или n Стандартное числовое форматирование с использованием разделителей (запятых) между разрядами Вывод значений в шесгнадцатеричном формате. Если вы использовали прописную X, то буквенные символы в шестнадцатеричных символах также будут прописными

Структурные типы. Разрядность всех встроенных типов фиксирована и постоянна. К структурными типам относятся все числовые типы данных (int, float и пр.), а также перечисления и структуры. Память для структурных типов выделяется из стека. При присвоении одного структурного типа другому присваивается его побитовая копия.

Ссылочные типы Ссылочные типы (классы и интерфейсы) ведут себя совершенно по-другому. Память для них выделяется не в стеке, а в области управляемой кучи. При копировании ссылочного типа создается еще одна ссылка, которая указывает на ту же область оперативной памяти.

Сравнение типов ВопросСтруктурныеСсылочные РазмещениеВ области стекаВ области управляемой кучи Представление переменной В виде локальной копии типа В виде указателя на область опер памяти Может выступать как базовый? Нет. Структурные типы всегда закрыты и дополнение их другими свойствами нет Да, если этот ссылочный тип не определен внутренне какзакрытый

Сравнение типов Передача параметров Как значений (то есть передаются только локальные копии значений переменных) Как ссылок Переопределение Переопределение Object. Finalize() Нет. Структурные типы никогда не размещаются в куче, и поэтому к ним не применяется функция завершения Да, но не напрямую Существует ли контруктор Да, все должны принимать параметры Конечно!

System Object Все типы данных от него. Главные методы объекта System.Object: EqualsQ для сравнения объектов ссылочных типов, но не структурных. 2. GetHashCode{) Возвращает целочисленное значение, идентифицирующее конкретный экземпляр объекта данного типа 3. GetTypeC) Метод возвращает объект Туре(), полностью описывающий тот объект, из которого метод был вызван.

4.ToStringQ Возвращает символьное представление объекта в формате. 5. Finalize() Освободить все ресурсы, занятые объектом данного класса, перед удалением этого объекта. 6. MemberwiseCloneQ создания еще одной ссылки на область, занимаемую объектом данного типа в оперативной памяти. Этот метод не может быть замещен.

Упаковка и распаковка Предположим, что у нас есть переменная простого структурного типа данных short: // Создаем переменную типа short и присваиваем ей значение short s = 25; Процесс упаковки: // Упаковываем переменно s: object objShort = s: Упаковка это процесс явного преобразования структурного типа в ссылочный.

Обратная распаковка объекта short anotherShort = (short)objShort; Распаковка это преобразование ссылки на объект в оперативной памяти обратно в структурный тип.