Классы c#

Классы c#

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы с вами разобрали конструкцию switch case c#. В данной статье я бы хотел рассказать, что такое классы в C#. Классы — это фундамент языка C#, в нем заключена вся суть объектов. Внутри класса определяются данные и действия, выполняемые над этими данными. Класс — это обертка (шаблон), которая определяет форму объектов. Объекты, в свою очередь, — это экземпляры класса. Определяя класс, мы создаем данные. В данном случае данные — это переменные-экземпляры класса. Над данными должен выполняться определенный код. Реализация кода находится в методах класса.

Класс создаётся с помощью ключевого слова class. Давайте напишем общую структуру класса, которая содержит только 2 переменные класса и 2 метода (чтобы было проще понимать, методы — это те же самые функции, но реализованные внутри класса):

class имя_класса {
	уровень_доступа тип переменная1;
	уровень_доступа тип переменная2;
	
	уровень_доступа тип_возвращаемого_значени метод1(параметры) {
		//тело метода
	}
	
	уровень_доступа тип_возвращаемого_значени метод2(параметры) {
		//тело метода
	}
}

Перед каждой переменной и методом есть уровень доступа, который определяет, как к этому члену получить доступ. Существует несколько уровней доступа:

1) private. Данный уровень выставлен по умолчанию. Если вы ничего не напишите, то данный член класса будет иметь уровень доступа private. Это закрытый уровень доступа. Обращаться к данному члену класса, можно только из самого класса.
2) public. Это самый открытый уровень доступа. Члены данного класса могут быть доступны из любой части программы, а не только из класса.
3) protected. Это нечто среднее между public и private. К членам с данным уровнем доступа можно обращаться из самого класса, и из классов-наследников (одна из трех парадигм объектно-ориентированного программирования — это наследование, об этом поговорим в одной из следующих статей).

Давайте создадим простейший класс Room, в котором будут находиться данные о длине, ширине и высоте комнаты, а также будет содержаться информация о том, есть ли в ней окна:

class Room {
	public double length; //длина комнаты
	public double height; //высота комнаты
	public double width; //ширина комнаты
	public bool windows; //есть ли окна?
}

Класс — это нечто абстрактное, он не создает реальность. А вот объект — это уже нечто реальное. Давайте создадим объект класса Room:

Room myRoom = new Room();

Каждый объект класса содержит собственные копии всех переменных-членов класса, поэтому к ним можно обращаться и присваивать различные значения. Давайте зададим значения всем четырем переменным-членам класса:

myRoom.length = 7;
myRoom.height = 2.5;
myRoom.width = 4;
myRoom.windows = true;

Т.е. мы видим, что обращение к переменным-членам класса идёт через оператор ".". Давайте сообщим пользователю объем комнаты и имеет ли данная комната окна:

Console.WriteLine("Объем комнаты равен = "+ myRoom.length * myRoom.height * myRoom.width);
if (myRoom.windows) Console.WriteLine("В комнате имеются окна."); else Console.WriteLine("В комнате нет окон.");

Можно создавать сколько угодно объектов от одного класса. И все эти объекты могут иметь различные значения переменных.
Пока в нашем классе содержатся только переменные-экземпляры. Давайте добавим в него пару методов. Сразу отмечу, что в хорошей программе один метод выполняет только одну задачу. Методу можно присвоить любое имя, за исключением ключевых слов C#, а также Main(), так как данный метод служит точкой входа в программу. Реализуем метод, который возвращает площадь комнаты, а также реализуем метод, который возвращает объём комнаты (так сказать рефакторинг кода):

public double SRoom(double x, double y) {
	return x * y;
}
public double VRoom(double x, double y, double z) {
	return x * y * z;
}

Полный код программы будет иметь следующий вид:

class Room
    {
        public double length;
        public double height;
        public double width;
        public bool windows;

        public double SRoom(double x, double y)
        {
            return x * y;
        }

        public double VRoom(double x, double y, double z)
        {
            return x * y * z;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Room myRoom = new Room();
            myRoom.length = 7;
            myRoom.height = 2.5;
            myRoom.width = 4;
            myRoom.windows = true;
            Console.WriteLine("Объем комнаты равен = " + myRoom.VRoom(myRoom.length,myRoom.height,myRoom.width));
            Console.WriteLine("Площадь комнаты равна = " + myRoom.SRoom(myRoom.length, myRoom.width));
            if (myRoom.windows) Console.WriteLine("В комнате имеются окна."); else Console.WriteLine("В комнате нет окон.");
            Console.ReadLine();
        }

    }

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

В качестве домашнего задания добавьте в класс Room поле price, которое будет отвечать за цену одного квадратного метра. Также создайте метод, который будет принимать 2 параметра: общую площадь комнаты и цену. Данный метод должен возвращать стоимость данной комнаты.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:
Оформление дипломов недорого Орск. заказать тут: купить диплом в томске

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *