#15 - Конструкторы, а также модификатор static

#15 - Конструкторы, а также модификатор static

Помимо методов и полей, в классах также могут присутствовать конструкторы, что выполняют роль установщиков данных при создании объекта. В уроке мы познакомимся с конструкторами, а также изучим работу с модификатором доступа static.

Видеоурок

Конструктор класса очень удобен и по своему виду схож с обыкновенными функциями. За счёт конструктора мы можем установить значения для объекта сразу при его создании.


Конструктор должен иметь одинаковое название с классом. Пример создания конструктора показан ниже:

class Book {
	private int pages;
	public string name;
	private float weight;
 
	public void getInfoBook () {
		Console.WriteLine("In the book " + name + " is " + pages + " pages. ");
		Console.WriteLine("It weight is - " + weight + "kg!");
		Console.WriteLine("");
	} 
 
	public Book (int _pages, float _weight) {
		pages = _pages;
		weight = _weight;
	}
 
	public Book (int _pages, float _weight, string _name) {
		pages = _pages;
		weight = _weight;
		name = _name;
	}
}

В одном классе может быть сразу несколько конструкторов. Создав несколько конструкторов мы можем передавать разное количество параметров при создании объекта.


Компилятор сам определяет какой конструктор необходимо использовать в зависимости от передаваемых параметров и их типов данных. 


В коде выше переменные идут с модификатором доступа private. Дело в том, что все переменные лучше делать либо private, либо protected. Доступ к переменным должен осуществляться только за счёт методов и конструкторов. Доступ к полям напрямую должен быть закрыт.


Дополнительно создадим два объекта и выведем информацию:

class MainClass {
	public static void Main(String[] args) {
		Book sherlock_holms = new Book(460, 1.7f); // Используем 1 конструктор
		sherlock_holms.name = "Sherlock Holms"; // Устанавливаем вручную значение для name
		sherlock_holms.getInfoBook ();
 
		Book green_mile = new Book(750, 2.8f, "Green Mile"); // Используем второй конструктор
		green_mile.getInfoBook ();
	}
}

Поскольку переменная name имеет public модификатор доступа, то мы можем ссылаться к ней отдельно. Лучше так не делать и для неё тоже установить модификатор private.


Также конструктор может не принимать параметров. В таком случае при создании объекта ничего не надо дополнительно передавать.

Модификатор static

Благодаря static мы можем создать переменную или метод, что будет принадлежать к классу в целом. Это означает, что можно обратиться к статическому методу или статическому полю напрямую через класс без создания объекта. 


Это удобно и подобная схема реализована во многих встроенных классах C#.


Для примера возьмем класс Math (класс связан с математическими формулами). Через класс можно обратить к методам и к значениям без создания объекта на основе класса:

int i = -10;
int iAbs = Math.Abs(i); // Будет 10

Для создания поля или метода с модификатором static необходимо дописать ключевое слово static перед типом данных:

public static string some = "Просто текст";

Исходный код

Весь код будет доступен после подписки на проект!

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение ASP.NET Core MVC. Создание сайтов на C#
10 уроков
Программа на C# .NET Windows Forms
7 уроков
Изучение C#, ASP.NET и создание Windows программ
Уроки C# под Unity 5 для начинающих
9 уроков
Комментарии для сайта Cackle