|
Введение в классы
КЛАССЫ
Классы — сердце каждого объектно-ориентированного языка. Класс представляет собой инкапсуляцию данных и методов для их обработки. Это справедливо для любого объектно-ориентированного языка. Языки отличаются в этом плане лишь типами данных, хранимых в виде членов, а также возможностями классов. В том, что касается классов и многих функций языка, С# кое-что заимствует из C++ и Java и привносит новое помогающее найти элегантные решения
ОПРЕДЕЛЕНИЕ КЛАССОВ
Синтаксис определения классов на С# прост, особенно если вы программируете на C++ или Java. Поместив перед именем вашего класса ключевое слово class, вставьте члены класса, заключенные в фигурные скобки, например:
class MySimpleClass
{
private long myClassID;
}
|
Этот простейший класс с именем MySimpleClass содержит единственный член — myClassID.
НАЗНАЧЕНИЕ КЛАССОВ
Так для чего нужны классы. Представьте себе, что у вас есть некоторый объект, который характеризуется рядом свойств.
Например, работник на некой фирме. У него есть такие свойства, как фамилия, возраст, стаж и т. п. Так вот, в этом случае удобно каждого работника описывать не рядом независимых переменных (строкового типа для фамилии, целого типа для возраста и стажа), а одной переменной типа Worker, внутри которой и содержатся переменные для фамилии, возраста и стажа. Здесь самое важное то, что в переменной типа Worker содержатся другие переменные. Конечно, типа Worker среди встроенных типов данных нет, но это не беда — мы можем ввести его.
Еще одна важная вещь: в классах помимо переменных разных типов содержатся функции (или, что то же самое, методы) для работы с этими переменными. Скажем, в нашем примере с классом Worker логично ввести специальные функции для записи возраста и стажа. Функции будут, в частности, проверять правильность вводимой информации. Например, ясно, что возраст у работника не может быть отрицательным или большим 150. Так вот, наша функция и будет проверять правильность введенного пользователем возраста.
Давайте рассмотрим первый пример класса. Создайте новое консольное приложение для С# и введите следующий текст:
using System;
namespace test
{
//Начало класса
class Worker
{
public int age = 0;
public string name;
}
//Конец класса
class Test
{
[STAThread]
static void Main(string[] args)
{
Worker wrkl = new Worker();
wrkl.age = 30;
wrkl.name = "Петров Иван Сергеевич";
Console.WriteLine(wrkl.name + " - " + wrkl.age + " года");
}
}
}
|
Запустите программу. Она, как и следовало ожидать, выведет на экран
"Петров Иван Сергеевич - 30".
Разберем этот код:
class Worker
{
public int age = 0;
public string name;
}
|
Определяем класс Worker. Внутри этого класса существуют две переменные — целая age для возраста и name строкового типа для имени.
Обратите внимание, что, в отличие от C/C++, мы можем задавать некоторое начальное значение непосредственно сразу после объявления переменной:
public int age=0;
Начальное значение задавать вовсе не обязательно — это видно по переменной name.
Перед переменными мы пишем ключевое слово public. Значение у него такое же, как и в C++ — это означает, что переменная (или функция) будет видна вне класса. Если мы не напишем перед переменной никакого модификатора доступа, или укажем private, то переменная не будет видна снаружи класса, и ее смогут использовать только функции этого же класса (т. е. она будет для «внутреннего использования»).
Далее в строчке
Worker wrkl = new Worker();
мы заводим экземпляр класса в куче (heap) и возвращаем на него ссылку.
Затем в строчках
wrkl.age = 30;
wrkl.name = "Петров Иван Сергеевич";
Console.WriteLine(wrkl.name + " - " + wrkl.age + " года");
мы используем наш класс, присваивая некоторые значения для возраста и имени и выводя их потом на экран.
Предыдущая стр.   
Оглавление   
Следующая стр.
Средняя оценка:     (4,5 - 6 голосов) Для оценки необходимо зарегистрироваться
Только зарегистрировавшиеся пользователи могут оставлять комментарии
Комментирует daneel1985 21.09.2010 14:42:21 В целом очень даже неплохая статья.
Комментирует GenaVeng 06.09.2011 7:44:38
|
|