Начиная с этой статьи, приступаем к изучению ООП(обьектно-ориентированного программирования).

Классы

Что же такое классы? Представим себе, что у вас есть некий объект, который характеризуется рядом свойств. К примеру, кардер. У него есть такие свойства, как ник, репутация, кол-во лет в сфере и т. п. Так вот, в этом случае удобно каждого кардера описывать не рядом независимых переменных (string для ника, int для репутации, кол-ва лет в сфере), а одной переменной типа Carder, внутри которой и содержатся переменные для ника, репутации и кол-ва лет в сфере . Это здесь самое важное - что в переменной типа Carder содержаться другие переменные. Конечно, типа Carder среди встроенных типов данных нет - ну так эта не беда - мы можем создать его.

Из того что важно знать про классы - это то, что в классах помимо переменных разных типов содержатся функции (ну или, что тоже самое, методы) для работы с этими переменными. Скажем, в нашем примере с классом Carder логично ввесли специальные функции для записи репутации и кол-ва лет в сфере. Функции будут, в частности, проверять правильность вводимой информации. Например, ясно, что кол-во лет в сфере у кардера не может быть отрицательным или больше 20 . Так вот наша функция и будет проверять правильность введеного пользователем кол-ва лет.

Рассмотрим пример класса

using System;
namespace test
{
//Начало класса
class Carder
{
public int stag=0;
public string nik;
}
//Конец класса

class Test
{
[STAThread]
static void Main(string[] args)
{
Carder card1 = new Carder();
card1.stag=0;
card1.nik="Uzver";
Console.WriteLine(card1.nik+", "+card1.stag);
}
}
}
Запустим программу. Она выведет на экран "Uzver, 0".

З.Ы. Извиняюсь если я случайно написал чей-то ник(Uzver) ))))

Давайте кратко обсудим наш код. Во-первых, в строчках

...
class Carder
{
public int stag=0;
public string nik;
}...
мы оределили наш класс Carder. Внутри этого класса существует две переменные - целая stag для стажа(кол-ва лет в сфере) и nik строкового типа для ника.

...
public int stag=0;
...
Начальное значение задавать вовсе не обязательно - это видно по переменной nik.

Перед переменными мы пишем ключевое слово public. Оно обозначает тоже самое, что и в C++ - а именно , что эта переменная (или функция) будет видна вне класса(одним словом публичная). Если мы не напишем перед переменной никакого модификатора доступа, или напишем private, то пременая не будет видна снаружи класса и ее смогут использовать только фунции этого же класса (т. е. она будет для "внутреннего использования"), хотя для модификатора доступа типа private можно использовать методы get и set (чтение и запись), но они должны быть определены в классе,как - расскажу потом.

Далее в строчке

...
Carder card1 = new Carder();
...
мы заводим экземмпляр класса в куче (heap) и возвращаем на него ссылку.

Затем в строчках

...
card1.stag=0;
card1.nik="Uzver";
Console.WriteLine(card1.nik+", "+card1.stag);
...
мы используем наш класс. А именно присваиваем некоторые значения для стажа и ника и выводим их потом на экран.

© Hintax