Top.Mail.Ru

csharpЯзык С# является одним из самых перспективных языков программирования. Современная среда разработки Visual Studio .Net 2010 делает процесс программирования приятным и эффективным.Мощная библиотека классов платформы .NET берет на себя массу рутинных операций, что дает возможность решать более сложные задачи, используя готовые классы как строительные блоки.

Во многом причиной появления языка С# и платформы .Net явилась необходимость противостояния платформе Java компании Sun Microsystem.Причиной появления языка Java явилось необходимость решения двух проблем:

  • Обеспечить возможность исполнения программы на любом компьютере (переносимость программ).
  • Обеспечить безопасность выполнения сетевой программы на локальном компьютере.


 

Создать класс Person, определить свойства для полей класса, создать массив объектов данного класса. Написать программу, демонстрирующую работу с этим классом.

Поля класса:
fam   - фамилия
status – статус  (ребенок, школьник, студент, служащий, пенсионер)
salary - зарплата
age – возраст

Для каждого из этих полей определим разумную  стратегию доступа (доступ чтение /запись).

  • Поле fam.  Фамилию можно задать только один раз. Фамилия меняется, только если ее значение ни разу еще не задавалась.
  • Поле status.  Доступ только для чтения. Статус персоны пересчитывается автоматически при всяком изменении возраста.
  • Поле age.  Доступ для чтения и  для записи. Изменение возраста приведет и к одновременному изменению статуса.
  • Поле salary.  Доступ для чтения и для записи.

Наследование - создание нового класса на базе уже имеющегося, или базового класса. Принцип наследования состоит в том, что элементы данных  и методы базового класса автоматически становятся элементами данных нового класса. Класс в С# может иметь только одного предка.

 1. Механизм наследования позволяет реализовать принцип эффективного программирования: написанный код можно многократно использовать. Методы базового или родительского класса могут использоваться объектами всех классов потомков.

2. Наследование реализует принцип программирования от «простого к сложному» или от общего к частному.  При этом базовый класс реализует только самые общие и простые методы, описывающие поведение всех объектов, а каждый производный класс лишь добавляет специфические особенности.

Полиморфизм – свойство, которое позволяет использовать одно и то же имя функции для решения двух и более схожих, но технически разных задач.

Чтобы использовать полиморфизм, необходимо чтобы:

  • все классы являлись наследниками одного и того же абстрактного  базового класса;
  • функция, реализующая метод, должна быть объявлена абстрактной в базовом классе с использованием ключевого слова abstract, и затем переопределена в производном классе с помощью ключевого слова override.

Класс называется абстрактным, если он имеет хотя бы один абстрактный метод и в заголовке спецификатор abstract.

Метод называется абстрактным, если при определении метода не задана реализация метода. Такой метод обозначается спецификатором  abstract.

Определения разделяемых типов позволяют разделять определения для классов, структур и интерфейсов на несколько файлов. Для определения разделяемого типа используется ключевое слово partial.

Ключевое слово partial указывает на то, что другие части класса, структуры или интерфейса могут быть определены в пространстве имен. Все части должны использовать ключевое слово partial. Для формирования окончательного типа все части должны быть доступны во время компиляции. Все части должны иметь одинаковые специальные возможности, например public, private и т.д.

Интерфейс представляет собой полностью абстрактный класс без полей, все методы которого описаны, но не реализованы. Таким образом, интерфейс описывает набор методов, которые должен реализовать любой класс, исполняющий этот интерфейс. Класс, исполняющий интерфейс, называется интерфейсным классом. Интерфейсный класс может содержать не только реализацию методов интерфейса, но и свои методы, поля, свойства. Однако, он обязательно должен содержать реализацию всех интерфейсных методов.  Для описания интерфейса используется зарезервированное слово interface. В интерфейсе нельзя указывать модификаторы доступа, которые следует указывать в интерфейсном классе.