Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
33
Добавлен:
12.02.2015
Размер:
597.5 Кб
Скачать

Пространства имен

Обзор

Глава 5 – Расширенные концепции ООП в языке C#

Виртуальные функции удобны в случае необходимости вызова метода производного класса из объекта базового класса.

Различие между замещением и полиморфизмом заключается в том, что при использовании полиморфизма решение о вызове того или иного метода принимается во время выполнения программы.

Абстрактные базовые классы – это классы, которые могут содержать как абстрактные члены (методы без реализации), так и неабстрактные члены. Метод без реализации в C# называется

операцией (operation).

Интерфейс – это чистый абстрактный базовый класс. Он может содержать только абстрактные методы, но не должен содержать исходного кода реализации.

Класс может реализовать более одного интерфейса; фактически, класс может являться производным от другого класса и одновременно выполнять реализацию интерфейса (одного или нескольких).

Цели

Объяснить, что такое пространство имен

Создавать свои пространства имен

Описать типы именования пространства имен

Использовать директивы пространств имен

Создавать псевдонимы (alias) для пространства имен

Использовать базовые библиотеки классов

.NET

Пространства имен

Позволяют избежать конфликта имен

Выполняют функцию элементов языка, которые помогают структурировать исходный код

Позволяет снизить трудозатраты, когда нам требуется повторное использование кода в другом приложении

Объявление пространств имен

Пространства имен объявляются также как классы

Синтаксис:

namespace NameSpaceName

{

//All Classes for this namespace go here!

}

Объявление пространств имен – пример

class SamsungTelevision

{

...

}

class SamsungWalkMan

{

...

}

class SonyTelevision

{

...

}

class SonyWalkMan

{

...

}

namespace Samsung

{

class Television

{...}

class WalkMan {...}

}

namespace Sony

{

class Television

{...}

class Walkman

{...}

}

Вложенные пространства имен

Объявление пространства имен внутри пространства имен

...

 

 

namespace Sony

 

 

 

...

{

 

 

namespace

namespace

 

 

Sony.Television

Television

 

 

{

{

 

 

class T14inches

class

 

 

{

T14inches

 

 

...

{

 

 

}

...

 

 

class T21inches

}

 

 

{

class

 

 

...

T21inches

 

 

}

{

 

 

}

...

 

 

 

}

 

...

 

 

 

 

 

}

 

 

}

 

 

...

 

 

Модификаторы доступа и пространства имен

Пространства имен всегда имеют доступ public

Пространства имен не могут иметь тип доступа protected, private или internal

...

public namespace Sony //error

{

...

}

private namespace Samsung //error

{

...

}

...

Уточненное именование

При использовании класса в своем пространстве имен, мы должны задавать только имя класса

При использовании класса вне своего пространства имен, мы должны ссылаться на класс используя полностью уточненное имя класса (fully qualified name)

Namespace.class name

Не уточненное именование

namespace Sony

{

class Television

{

...

}

class WalkMan

{

...

Television MyEntertainment = new Television();

...

}

}

Соседние файлы в папке Инструментальные средства