Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В рассматриваемом здесь примере создается класс Stack, реализующий функции стека. В качестве базовых средств для хранения данных в стеке служит закрытый массив. А операции размещения и извлечения данных из стека доступны с помощью открытых методов класса Stack. Таким образом, открытые методы действуют по упомянутому выше принципу "последним пришел — первым обслужен". Как следует из приведенного ниже кода, в классе Stackсохраняются символы, но тот же самый механизм может быть использован и для хранения данных любого другого типа.

// Класс для хранения символов в стеке.

using System;

class Stack {

// Эти члены класса являются закрытыми,

char[] stck; // массив, содержащий стек

int tos; // индекс вершины стека

// Построить пустой класс Stack для реализации стека заданного размера,

public Stack(int size) {

stck = new char[size]; // распределить память для стека

tos = 0;

}

// Поместить символы в стек,

public void Push(char ch) {

if(tos==stck.Length) {

Console.WriteLine(" - Стек заполнен.");

return;

}

stck[tos] = ch;

tos++;

}

// Извлечь символ из стека,

public char Pop() {

if(tos==0) {

Console.WriteLine(" - Стек пуст.");

return (char) 0;

}

tos-- ;

return stck[tos];

}

// Возвратить значение true, если стек заполнен,

public bool IsFull() {

return tos==stck.Length;

}

// Возвратить значение true, если стек пуст,

public bool IsEmpty() {

return tos==0;

}

// Возвратить общую емкость стека,

public int Capacity() {

return stck.Length;

}

// Возвратить количество объектов, находящихся в данный момент в стеке,

public int GetNum() {

return tos;

}

}

Рассмотрим класс Stackболее подробно. В начале этого класса объявляются две следующие переменные экземпляра.

// Эти члены класса являются закрытыми,

char[] stck; // массив, содержащий стек

int tos; // индекс вершины стека

Массив stckпредоставляет базовые средства для хранения данных в стеке (в данном случае — символов). Обратите внимание на то, что память для этого массива не распределяется. Это делается в конструкторе класса Stack.А член tosданного класса содержит индекс вершины стека.

Оба члена, tosnstck, являются закрытыми, и благодаря этому соблюдается принцип "последним пришел — первым обслужен". Если же разрешить открытый доступ к члену stck, то элементы стека окажутся доступными не по порядку. Кроме того, член tosсодержит индекс вершины стека, где находится первый обслуживаемый в стеке элемент, и поэтому манипулирование членом tosв коде, находящемся за пределами класса Stack, следует исключить, чтобы не допустить разрушение самого стека. Но в то же время члены stckntosдоступны пользователю класса Stackкосвенным образом с помощью различных отрытых методов, описываемых ниже.

Рассмотрим далее конструктор класса Stack.

// Построить пустой класс Stack для реализации стека заданного размера,

public Stack(int size) {

stck = new char[size]; // распределить память для стека

tos = 0;

}

Этому конструктору передается требуемый размер стека. Он распределяет память для базового массива и устанавливает значение переменной tosв нуль. Следовательно, нулевое значение переменной tosуказывает на то, что стек пуст.

Открытый метод Push()помещает конкретный элемент в стек, как показано ниже.

// Поместить символы в стек,

public void Push(char ch) {

if (tos==stck.Length) {

Console.WriteLine(" - Стек заполнен.");

return;

}

stck[tos] = ch;

tos++;

}

Элемент, помещаемый в стек, передается данному методу в качестве параметра ch. Перед тем как поместить элемент в стек, выполняется проверка на наличие свободного места в базовом массиве, а именно: не превышает ли значение переменной tosдлину массива stck. Если свободное место в массиве stckесть, то элемент сохраняется в нем по индексу, хранящемуся в переменной tos, после чего значение этой переменной инкрементируется. Таким образом, в переменной tosвсегда хранится индекс следующего свободного элемента массива stck.

Для извлечения элемента из стека вызывается открытый метод Pop(),приведенный ниже.

// Извлечь символ из стека,

public char Рор() {

if(tos==0) {

Console.WriteLine (" - Стек пуст.");

return (char) 0;

}

tos-- ;

return stck[tos];

}

В этом методе сначала проверяется значение переменной tos. Если оно равно нулю, значит, стек пуст. В противном случае значение переменной tosдекрементируется, и затем из стека возвращается элемент по указанному индексу.

Несмотря на то что для реализации стека достаточно методов Push()и Pop(),полезными могут оказаться и другие методы. Поэтому в классе Stackопределены еще четыре метода: IsFull(), IsEmpty(), Capacity() и GetNum().Эти методы предоставляют всю необходимую информацию о состоянии стека и приведены ниже.

// Возвратить значение true, если стек заполнен,

public bool IsFull() {

return tos==stck.Length;

}

// Возвратить значение true, если стек пуст,

public bool IsEmpty() {

return tos==0;

}

// Возвратить общую емкость стека,

public int Capacity() {

return stck.Length;

}

// Возвратить количество объектов, находящихся в данный момент в стеке,

public int GetNum() {

return tos;

}

Метод IsFull()возвращает логическое значение true, если стек заполнен, а иначе — логическое значение false. Метод IsEmpty()возвращает логическое значение true, если стек пуст, а иначе — логическое значение false. Для получения общей емкости стека (т.е. общего числа элементов, которые могут в нем храниться) достаточно вызвать метод Capacity(),а для получения количества элементов, хранящихся в настоящий момент в стеке, — метод GetNum().Польза этих методов состоит в том, что для получения информации, которую они предоставляют, требуется доступ к закрытой переменной tos. Кроме того, они служат наглядными примерами организации безопасного доступа к закрытым членам класса с помощью открытых методов.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x