
Урок #15 – Конструкторы классов. Модификатор 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 месяца
Также стоит посмотреть