Герберт Шилдт - 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: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Класс для прямоугольников, производный от класса TwoDShape.

class Rectangle : TwoDShape {

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

// прямоугольник является квадратом,

public bool IsSquare() {

if(Width == Height) return true;

return false;

}

// Возвратить площадь прямоугольника,

public double Area() {

return Width * Height;

}

}

В класс Rectangleвходят все члены класса TwoDShape, к которым добавлен метод IsSquare(), определяющий, является ли прямоугольник квадратом, а также метод Area(), вычисляющий площадь прямоугольника.

Доступ к членам класса и наследование

Как пояснялось в главе 8, члены класса зачастую объявляются закрытыми, чтобы исключить их несанкционированное или незаконное использование. Но наследование класса не отменяет ограничения, накладываемые на доступ к закрытым членам класса. Поэтому если в производный класс и входят все члены его базового класса, в нем все равно оказываются недоступными те члены базового класса, которые являются закрытыми. Так, если сделать закрытыми переменные класса TwoDShape, они станут недоступными в классе Triangle, как показано ниже.

// Доступ к закрытым членам класса не наследуется.

// Этот пример кода не подлежит компиляции.

using System;

// Класс для двумерных объектов,

class TwoDShape {

double Width; // теперь это закрытая переменная

double Height; // теперь это закрытая переменная

public void ShowDim() {

Console.WriteLine("Ширина и высота равны " +

Width + " и " + Height);

}

}

// Класс Triangle, производный от класса TwoDShape.

class Triangle : TwoDShape {

public string Style; // тип треугольника

// Возвратить площадь треугольника,

public double Area() {

return Width * Height /2; // Ошибка, доступ к закрытому

// члену класса запрещен

}

// Показать тип треугольника,

public void ShowStyle() {

Console.WriteLine("Треугольник " + Style);

}

}

Класс Triangleне будет компилироваться, потому что обращаться к переменным Widthи Heightиз метода Area()запрещено. А поскольку переменные Widthи Heightтеперь являются закрытыми, то они доступны только для других членов своего класса, но не для членов производных классов.

--------------------------------------------

ПРИМЕЧАНИЕ

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

--------------------------------------------

На первый взгляд, ограничение на доступ к частным членам базового класса из производного класса кажется трудно преодолимым, поскольку оно не дает во многих случаях возможности пользоваться частными членами этого класса. Но на самом деле это не так. Для преодоления данного ограничения в C# предусмотрены разные способы. Один из них состоит в использовании защищенных ( protected) членов класса, рассматриваемых в следующем разделе, а второй — в применении открытых свойств для доступа к закрытым данным.

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

Ниже приведен вариант класса TwoDShape, в котором переменные Widthи Heightпревращены в свойства. По ходу дела в этом классе выполняется проверка: являются ли положительными значения свойств Widthи Height. Это дает, например, возможность указывать свойства Widthи Heightв качестве координат формы в любом квадранте прямоугольной системы координат, не получая заранее их абсолютные значения.

// Использовать открытые свойства для установки и

// получения .значений закрытых членов класса.

using System;

// Класс для двумерных объектов,

class TwoDShape {

double pri_width; // теперь это закрытая переменная

double pri_height; // теперь это закрытая переменная

// Свойства ширины и высоты двумерного объекта,

public double Width {

get { return pri_width; }

set { pri_width = value < 0 ? -value : value; }

}

public double Height {

get { return pri_height; }

set { pri_height = value < 0 ? -value : value; }

}

public void ShowDim() {

Console.WriteLine("Ширина и высота равны " +

Width + " и " + Height);

}

}

// Класс для треугольников, производный от

// класса TwoDShape.

class Triangle : TwoDShape {

public string Style; // тип треугольника

// Возвратить площадь треугольника,

public double Area() {

return Width * Height / 2;

}

// Показать тип треугольника,

public void ShowStyle() {

Console.WriteLine("Треугольник " + Style);

}

}

class Shapes2 {

static void Main() {

Triangle t1 = new Triangle();

Triangle t2 = new Triangle();

t1.Width = 4.0;

t1.Height = 4.0;

t1.Style = "равнобедренный";

t2.Width = 8.0;

t2.Height = 12.0;

t2.Style = "прямоугольный";

Console.WriteLine("Сведения об объекте t1: ");

t1.ShowStyle();

t1.ShowDim();

Console.WriteLine("Площадь равна " + t1.Area());

Console.WriteLine();

Console.WriteLine("Сведения об объекте t2: ");

t2.ShowStyle();

t2.ShowDim();

Console.WriteLine("Площадь равна " + t2.Area());

}

}

В этом варианте свойства Widthи Heightпредоставляют доступ к закрытым членам pri_widthи pri_heightкласса TwoDShape, в которых фактически хранятся значения ширины и высоты двумерного объекта. Следовательно, значения членов pri_widthи pri_heightкласса TwoDShapeмогут быть установлены и получены с помощью соответствующих открытых свойств, несмотря на то, что сами эти члены по-прежнему остаются закрытыми.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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