Уроки C# (C sharp) | #15 - Конструкторы, а также static
Vložit
- čas přidán 6. 09. 2024
- Первая часть: • Уроки C# (C sharp) | #...
В этом уроке мы научимся создавать конструкторы, а также разберем такой метод как static.
✔ Основной сайт: itproger.com/
✔ -------------
Группа Вк - prog_life
Группа FaceBook - goo.gl/XW0aaP
Я в Google+ - goo.gl/Tqt9W0
Страничка Twitter - / goshadudar
Страничка Вк - codi999
✔ Начните зарабатывать на CZcams - join.air.io/mon...
✔ Видео по заработку на CZcams - goo.gl/RLPXV8
Помощь в развитии канала.
* Яндекс Деньги: 410014343706921
* Кошельки WebMoney:
- Доллар: Z331064341236
- Гривна: U386388718252
- Рубль: R214610220703
Офигеть, наконецто узнал, что такое статик) спасибо большое)
То чувство, что даже животное стало счастливее в конструкторе, чем было в классе XD)
Спасибо из 2020. Так держать! Гоша я уже 2 языка с тобой учу.
внатуре
@@ARSIK_PROpr Cалам с 2021) недельки 2 учил пайтон, теперь перешел на с# чисто ради того, чтобы делать игры на unity. Как закончу здесь, пойду дальше к подборке с unity. Ребзям из будущего, спросите как успхи
@@user-bg4es6gv4x ну как успехи, уже 17 часов прошло
@@user-lm8py5rb4m я сделал кибер панк для калькуляторов
@@user-bg4es6gv4x + тоже самое перешол на C# с Python
Просто, четко, кратко и информативно. Благодарю.
Viewer.knowledge++;
Viewer.happiness++;
Спасибо вам огромное! Хотелось бы изучать языки и на мобильном устройстве. Не могли бы увеличить шрифт в два раза.
С уважением !
2021
Спасибо тебе за годные уроки
Спасибо, очень помогаешь в обучении) Лучи благодарности из недр моего сердечка тебе ✨❤️✨
Когда учил яву по гигбрайнсу вообще никак не мог воткнуть в эти классы, объекты и что к чему. Тут прям все очень вкусно пережевывается! Спасибо за твои труды!
Спасибо из 2018. Продолжайте.
я из будущего, их будет 25 и заключение
Правильнее будет "Она будет общей для всех экземпляров данного класса" 2:00
Я люблю тебя (как человека)! ))) Почему никто так-же внятно и быстро не смог пояснить что такое конструктор и статик? Можно не тратить по 4-е часа на курсы Специалиста впустую, а узнаить тоже самое за 10 минут.
Спасибо большое за урок! Никто, кроме тебя, не смог объяснить понятней про static
Спасибо большое за урок! Наконец-то разобралась в конструкторах.
Вы - большой молодец, умеете доступно объяснить)
Спасибо огромное, все понятно и по делу
4:59 повысил уровень счастья на одну десятую)
Очень хорошо объясняешь, материал качественный)
Спасибо за уроки!
Респект тебе, чувак
Супер🙃
Спасибо огромное
Хорошие уроки
Спасибо за урок) Лайк))
Спасибо, очень помог!
Хотелось бы что-нибудь услышать про деструктор объекта
Это метод обратный конструктору, автоматически вызывается при удалении объекта.
в с# в 99.99 % случаях не нужен, пишеться только если к примеру обьект волочит за собой какие-то "unmanaged" связи, к примеру соединения с файлами, внешние какие-то соединения, так вот можно написать деструктор явно (неявно он и так там есть, просто его не показывает) и указать в нем что нужно закрыть соединения и вот это все, чтобы не было утечек памяти и другой ерунды.
Олег сколько тебе лет?
Вы о чем ? В C# нет Деструктора ))) если что. о_0 , да да , нет деструктора ))) Вы наверное путаете с finalize. Это финализатор! он срабатывает только перед уничтожением объекта GC-ом. Пользоваться им нужно очень умело! Потому что если нелезть в GC, то одному создателю извесно когда вызовется финализатор. И все это время у вас будут захвачены ресурсы. Если вым нужно освобождать правильно и вовремя! ресурсы - читайте про реализацию IDisposable.
В уроках нет структурированности : поля называем функциями, классы тоже функция, значения это переменная - что очень сильно сбивает и путает
Спасибо болшое👍👍👍👍
Компилятор выбирает конструкторы... Мощная мысль, надо записать.
Лучше б сразу про перегрузку методов рассказал, чем такое говорить.
И конструктор вызывается не в зависимости от числа переменных. Еще необходимо, чтобы типы аргументов были соответствующими
Он с 8 по 15 урок записывал в один день. Можно заметить по дню сверху экрана)
Спасибо
Спасибо,Все понятно,кроме конструкторов.Все сложно (.Классы понял.
Конструктор - метод класса, который автоматически вызывается при создании нового объекта, соответствующего экземпляра класса.
не автоматически, мы сами его вызываем после ключевого слова new
Kostya Kravtsov "Слово" new создаёт экземпляр класса, а конструктор класса вызывается при этом автоматически.
ты не прав, конструктор (сам метод) мы пишем после new. Например new Form();
Здесь Form() - это и есть конструктор
Kostya Kravtsov После new мы пишем имя класса, а не метода. Метод не может быть вызван до создания экземпляра класса, конструктор вызывается при его создании. Кроме видео почитай книжек по программированию, полезно будет.
Подскажите пожалуйста . У меня есть массив 20 элементов . Я хочу создать классы исходя из этих элементов . Как мне сделать так чтобы значение элемента стало именем объекта ??
ы одно ухо влетело в другое вылетело после водных процедур!!мне что теперь не мыться чтобы не забыть выученое?
9:38 Чекайте время
GOD JESUS TOLD US TO LOVE GOD AND TO LOVE ONE ANOTHER! LET'S NOT DESTROY THIS WORLD! NO WAR!!! БОГ СОЗДАЛ ТАКОЙ ПРЕКРАСНЫЙ МИР! НЕ БУДЕМ РАЗРУШАТЬ МИР! ПОЛЮБИМ БОГА И ВСЕХ ЛЮДЕЙ! НЕТ ВОЙНЕ!!
А если создать 2 конструктора, которые будут принимать одинаковые параметры, как компилятор поймёт, какой надо? Или такие нельзя создать будет?
Сколько уроков планируется по c# ?
18
)
я точно чего- то недопонял.
Animal cat = new Animal("jora", 3, true);
Animal cat = new Animal ("tom", 2, true );
на 2ом коте пишет что "Локальная переменная или функция с именем "cat" уже определена в этой области"
но я же пытаюсь создать ещё 1 экземпляр класса у него свои параметры. экземпляры получается должны называться уникальным именем?
т.е. если я захочу прописать 5- кошек : cat1, cat2, cat3 ... . кто подскажет?
P.S. оставлю текст если у кого-то будет такой же вопрос, а так разобрался.
Animal cat = new Animal("jora", 3, true);
cat = new Animal ("tom", 2, true );
всё просто. я так и знал =)
Спасибо большое!
cat = new Animal ("tom", 2, true ); это же переопределение существующего кота, не создание нового
1. Все экземпляры класса должны иметь УНИКАЛЬНЫЕ ИМЕНА!
2. cat = new Animal() ПЕРЕОПРЕДЕЛЯЕТ параметры уже существующего экземпляра, но никак не создаёт новый!
Будьте внимательнее!
Для создания нового экземпляра, лучше использовать более разумные имена, если котов несколько! Например:
Animal cat_siam = new Animal ("jora", 3, true);
Animal cat_pers = new Animal ("tom", 2, true);
Таким образом вы имеете несколько экземпляров котов и можете с ними работать независимо друг от друга.
@@helloxtesIa спс помог
@@PuishImov Не за что! Будут вопросы - обращайтесь!
В его примере ошибка. Count не считает количество операций вызова класса animal.Так как он написал код у него получается обычное сложение count.
Это можно увидеть по выведенной ощипке на строке 31. Она там ненужна так как пример записан не правильно. Время 4:22
то есть как правильно ты решил не писать
Немного не корректно вы написали... Когда он добавил инкремент переменной count в конструктор, то, по вашему, это не счётчик количества экземпляров класса? Когда мы создаём новый экземпляр, в статическую переменную плюсуется 1 и выводим результат, который будет равняться количеству созданных экземпляров. Чем не счётчик?! Можно, конечно, реализовать это всё ещё, как минимум, 3-мя способами, но что изменится?!
Такой вопрос почему нельзя вставить 2 параметризированых конструктора
?
первому животному по дефолту присваеваится 1 конструктор,второму (если создать в нужных скобах переменные и при их инициализации )присваеваится второй конст.А если я хочу еще одного животного,то как присвоить ему новый конст без ошибки?
Почему в консоль выводит 2 раза с метода Print ? Это из-за того, что Count увеличивается ? Там же цикла нету... Не могу понять как это работает. Подскажите
Каждый раз, при создании нового экземпляра класса, срабатывает конструктор класса, в котором мы добавляем к переменной Count единицу и выводим результат методом Print(). Поэтому, без какого-либо цикла 2 раза выводится Print(). Если создадите 3 экземпляра, то будет выведено 3 раза, т.к. конструктор отработает 3 раза.
8:39 И-АА
Я тебе там, у тебя, на какую-то штуку с права кликул.
Советую использовать вместо name = _name;
this.name = name;
using System;
namespace les
{
class Animal {
public static int count = 1;
public void print (string name, int age, float speed) {
Console.WriteLine("Имя : " + name);
Console.WriteLine("Возрост : " + age);
Console.WriteLine("Скорость : " + speed);
Console.WriteLine ("Номер : " + Animal.count);
Console.WriteLine ("
");
count++;
}
}
class MainClass
{
public static void Main (string[] args)
{
Animal an = new Animal ();
an.print ("tom0", 7, 1.7f);
an.print ("tom1", 7, 1.7f);
an.print ("tom2", 7, 1.7f);
an.print ("tom3", 7, 1.7f);
an.print ("tom4", 7, 1.7f);
Console.ReadKey ();
}
}
}
Помогите не работает, я все правильно списал? Работаю на VS
using System;
namespace Erjan_1._0
{
class Animal
{
public static int count = 0;
public string name;
public int age;
public float hapiness;
public Animal()
{
name = "pp";
age = 7;
hapiness = 0.7f;
count++;
Print();
}
public Animal(string _name, int _age, float _hapiness);{
name = _name;
age = age;
hapiness = _hapiness;
count++;
Print();
}
public void Print()
{
Console.WriteLine("Name " + name);
Console.WriteLine("Age " + age);
Console.WriteLine("Hapiness " + hapiness);
}
}
class Program
{
public static void Main(string[] args)
{
Animal cat = new Animal();
Console.WriteLine();
Animal dog = new Animal("Tom", 12, 0.99f);
Console.WriteLine("Count of animals: " + Animal.count);
Console.ReadKey();
}
}
а можно не присваивать одну переменную другой в конструкторе? а в аргументах сразу юзать их.
так мы бы убрали доп. переменные _name, _age и _happyness
void не понял почему в некоторых методах поставил void,а в других поставил ?
void означает, что метод ничего не будет возвращать
@@timur_gavschannel8945 LOL понятно объяснил
@@timur_gavschannel8945 а что означает "возвращает/не будет возвращать"? Или же спустя несколько уроков я пойму?
@@PuishImov Подожди еще пару лет хД
@@PuishImov ты ещё раньше этодолжен был понял
я думаю что, в самом классе переменые не меняються, а меняються в экземпляре ( копии) который вы создаете и если создать еще одит экземпляр в нем переменые остаються такие же как и в настояещем классе (оригинал), поправте если не так
3:31
# Животноводство
А почему в конце "Animal.count" а не "dog"?
потому что переменной count мы добавили static, что означает, что она не относится к объектам, которые мы создавали (собаки), а остается статической по отношению к классу (class Animal)
Чёт я не понял, а почему, при изменении Имени, оно поменялось в классе, а каунт остаётся на месте?!
Бог богов.
Парень вообще не заморачивается, как это (statik) на самом деле работает. Как блондинка на авто с АКПП))). Или специально так делает?
+Андрей Глазов, т.е. для Вас уровень абстракции ничего не значит? Зачем заморачиваться со статик, если на данном уровне абстракции это работает именно так.
В задаче "о времени прибытия поезда" информация сколько стоили билеты и куда летел крокодил будет лишней))))))
Д/З бы(
Что-то я вообще не понял про static...
кто из 2019 тот не ОЛД(
я начинаю не понимать.
как много вариантов вызова, как много вариантов всего, я так скоро путаться начну
GOD JESUS TOLD US TO LOVE GOD AND TO LOVE ONE ANOTHER! LET'S NOT DESTROY THIS WORLD! NO WAR!!! БОГ СОЗДАЛ ТАКОЙ ПРЕКРАСНЫЙ МИР! НЕ БУДЕМ РАЗРУШАТЬ МИР! ПОЛЮБИМ БОГА И ВСЕХ ЛЮДЕЙ! НЕТ ВОЙНЕ!!