Subscribe to Feeds Subscribe to Tweeters
03 Июл

Урок 5. Классы C# — Программирование с нуля

Freesmska -> Уроки -> Урок 5. Классы C# — Программирование с нуля
Будь в курсе. Подпишись по e-mail:       

Хотите купить современный автомобиль в кредит? Получить льготный автокредит в россии можно на самых привлекательных условиях в сбербанке
классы C#

Привет. Пришло время познакомить Вас с волшебным миром классов на C#, так сказать основой основ, которая поможет вам не заблудиться в своих записях и писать программы наравне со всеми.)

Классы — участки кода объединяющие какую-либо логическую структуру.
Например: Класс машина, имеет в себе набор функций и процедур, позволяющих нам вкл/выкл радио, подсветку итд итп…
[code lang=»cpp»]
//класс Машина
class Car
{
//Переменные, означающие подсветку и радио
private bool light;
private bool radio;
//Конструктор класса (для чего нужен, расскажу позже)
public Car()
{
light = false;
radio = false;
}
//Процедура класса, позволяющая вкл/выкл подсветку
public void LightOnOff()
{
if (light) light = false;
else light = true;
}

public void RadioOnOff()
{
if (radio) radio = false;
else radio = true;
}
}
[/code]
Вот такой не большой пример.) А теперь подробней, что в нем и зачем. Вообще считаю пример приведенный в учебнике про машины, не очень правильным, так как не понятно а зачем нам вообще это нужно, но я взял его лишь для того, чтобы разобрать структуру построения. Далее приведу пример, который будет более жизнеспособным из какой-нибудь из моих программ.

И так для создания класса мы пишем слово class и его название.
Далее мы можем задать 1 и более конструкторов класса. Например
[code lang=»cpp»]
public Car() {}
public Car(bool l)
{
light = l;
}
[/code]
В первом случае мы создаем пустой конструктор класса, во втором, конструктор со значениями.
Для чего требуются конструкторы класса и можно ли обойтись без них?!

Конструкторы класса позволяют нам инициализировать некоторые переменные во время создания класса. Но можно их и не создавать.
Например:
[code lang=»cpp»]
class OnOff
{
private bool onOff;

public OnOff() { }
public OnOff(bool v)
{
onOff = v;
}

public void OnOffProc(bool v)
{
onOff = v;
}
}
[/code]
Класс переключатель. 🙂 Может быть создан и инициализирован в начальное состояние 2-мя способами.
[code lang=»cpp»]
//1 способ:
OnOff o = new OnOff();
o.OnOffProc(false);
//2 способ:
OnOff o = new OnOff(false);
[/code]
Согласитесь второй способ занимает меньше места и на вид воспринимается удобней.
Но кстати, как видно из примера с машиной, в конструкторе класса мы можем сразу задать значения, если они статические, не передавая их. А в последнем примере, удобно использовать конструктор с передающимися параметрами, если допустим изначально состояние, в котором должен находится элемент, не известно.

Класс, кроме конструктора, может содержать различные переменные, которые мы будем использовать, а так же функции и процедуры, с которыми вы познакомились в предыдущей статье.

Кстати по правилам хорошего тона) Переменные в классе должны быть все с модификатором private.
А их изменение должно происходить либо с помощью функций и процедур, либо способом приведенным мной ниже (создаем свойство):
[code lang=»cpp»]
class OnOff
{
private bool onOff;

public bool GetSetOnOff
{
get { return onOff; }
set { onOff = value; }
}
}
[/code]
И используется этот код следующим образом:
[code lang=»cpp»]
OnOff o = new OnOff();
o.GetSetOnOff = true;
bool z = o.GetSetOnOff;
[/code]
В первом случае мы устанавливаем значение переменной в true, а во втором получаем это значение в переменную z.
Чем удобен, такой способ:
Значение set в коде GetSetOnOff писать не обязательно, тогда мы получим эффект переменной только для чтения, ее значение нельзя модифицировать на прямую.
А как тогда можно модифицировать?! Допусти с помощью процедур или функций из класса в котором она находится.
Пока я думаю достаточно 🙂 Остальные мелочи по мере написания, различных программ уже под кпк.

А вот теперь домашнее задание для 2х уроков сразу, как я долго ждал этого момента =).
[code lang=»cpp»]
Напишите класс смска, в котором у нас будет 4 переменные: номер отправки, текст, длина текста, язык сообщения. Язык сообщения изначально в любом случае идет английский. А вот номер и текст, мы можем задавать в любое время, как при создании класса, так и по мере работы с ним. Длина текста сообщения должна считаться автоматом, при добавление текста, и не должна иметь возможности модифицироваться, кроме как внутри класса, но доступ для просмотра ее значения мы должны иметь в любое время. Так же класс должен содержать функцию или процедуру отправки, которая печатает на консоль Номер: Текст: Длину сообщения: Язык, а так же любой текст, типо "оля ля ля месяга отправлена".
[/code]

Вот такое простенькое домашнее задание, для желающих немного размяться.

[download id=»19″]

Постовой: Я тут узнал про вирус в контакте, бывают же нигодяи…

100% зрение без операций

Будь в курсе. Подпишись по e-mail:      

У вас есть мнение? Оставьте свой отзыв: