Уроки C# (C sharp) | #15 - Конструкторы, а также static

Sdílet
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

Komentáře • 109

  • @MartinEden-ps6ld
    @MartinEden-ps6ld Před 7 lety +49

    Офигеть, наконецто узнал, что такое статик) спасибо большое)

  • @garikmirzoyan5992
    @garikmirzoyan5992 Před 6 lety +44

    То чувство, что даже животное стало счастливее в конструкторе, чем было в классе XD)

  • @rezo4846
    @rezo4846 Před 4 lety +30

    Спасибо из 2020. Так держать! Гоша я уже 2 языка с тобой учу.

    • @ARSIK_PROpr
      @ARSIK_PROpr Před 4 lety

      внатуре

    • @user-bg4es6gv4x
      @user-bg4es6gv4x Před 3 lety +1

      @@ARSIK_PROpr Cалам с 2021) недельки 2 учил пайтон, теперь перешел на с# чисто ради того, чтобы делать игры на unity. Как закончу здесь, пойду дальше к подборке с unity. Ребзям из будущего, спросите как успхи

    • @user-lm8py5rb4m
      @user-lm8py5rb4m Před 3 lety

      @@user-bg4es6gv4x ну как успехи, уже 17 часов прошло

    • @user-bg4es6gv4x
      @user-bg4es6gv4x Před 3 lety +1

      @@user-lm8py5rb4m я сделал кибер панк для калькуляторов

    • @aploor215
      @aploor215 Před 3 lety

      @@user-bg4es6gv4x + тоже самое перешол на C# с Python

  • @user-zk4zv8ik1i
    @user-zk4zv8ik1i Před 6 lety +7

    Просто, четко, кратко и информативно. Благодарю.

  • @user-gh1qm1tt7q
    @user-gh1qm1tt7q Před 4 lety +20

    Viewer.knowledge++;
    Viewer.happiness++;

  • @KORUSKO
    @KORUSKO Před 6 lety +16

    Спасибо вам огромное! Хотелось бы изучать языки и на мобильном устройстве. Не могли бы увеличить шрифт в два раза.
    С уважением !

  • @criminalplushtoy7682
    @criminalplushtoy7682 Před 3 lety +4

    2021
    Спасибо тебе за годные уроки

  • @e_vetka
    @e_vetka Před 3 lety +1

    Спасибо, очень помогаешь в обучении) Лучи благодарности из недр моего сердечка тебе ✨❤️✨

  • @nogigantosaurus3671
    @nogigantosaurus3671 Před 3 lety

    Когда учил яву по гигбрайнсу вообще никак не мог воткнуть в эти классы, объекты и что к чему. Тут прям все очень вкусно пережевывается! Спасибо за твои труды!

  • @ivand7299
    @ivand7299 Před 6 lety +10

    Спасибо из 2018. Продолжайте.

    • @hackpulsar
      @hackpulsar Před 4 lety +3

      я из будущего, их будет 25 и заключение

  • @tmdan91
    @tmdan91 Před 7 lety +14

    Правильнее будет "Она будет общей для всех экземпляров данного класса" 2:00

  • @Renarus
    @Renarus Před 6 lety +1

    Я люблю тебя (как человека)! ))) Почему никто так-же внятно и быстро не смог пояснить что такое конструктор и статик? Можно не тратить по 4-е часа на курсы Специалиста впустую, а узнаить тоже самое за 10 минут.

  • @user-lt1tk4qp8o
    @user-lt1tk4qp8o Před 6 lety +4

    Спасибо большое за урок! Никто, кроме тебя, не смог объяснить понятней про static

  • @tvoienot5527
    @tvoienot5527 Před 3 lety +1

    Спасибо большое за урок! Наконец-то разобралась в конструкторах.

  • @user-kq6hc2kl6f
    @user-kq6hc2kl6f Před 7 lety

    Вы - большой молодец, умеете доступно объяснить)

  • @user-wx2zb9sw3y
    @user-wx2zb9sw3y Před 6 lety +1

    Спасибо огромное, все понятно и по делу

  • @vortygames
    @vortygames Před 6 lety +1

    4:59 повысил уровень счастья на одну десятую)

  • @fallentine_
    @fallentine_ Před 6 lety

    Очень хорошо объясняешь, материал качественный)

  • @ezizkurbannazarov5680
    @ezizkurbannazarov5680 Před 6 lety

    Спасибо за уроки!

  • @tmthoused2847
    @tmthoused2847 Před 5 lety +1

    Респект тебе, чувак

  • @monkeigh4101
    @monkeigh4101 Před 2 lety

    Супер🙃

  • @justerfeed
    @justerfeed Před 7 lety +2

    Спасибо огромное

  • @neitonmatisso6536
    @neitonmatisso6536 Před 7 lety +2

    Хорошие уроки

  • @mandarin7716
    @mandarin7716 Před 4 lety

    Спасибо за урок) Лайк))

  • @cathalie
    @cathalie Před 6 lety

    Спасибо, очень помог!

  • @firstaid6253
    @firstaid6253 Před 7 lety +5

    Хотелось бы что-нибудь услышать про деструктор объекта

    • @user-gq6qi5or6o
      @user-gq6qi5or6o Před 7 lety +1

      Это метод обратный конструктору, автоматически вызывается при удалении объекта.

    • @KostyaHoN
      @KostyaHoN Před 7 lety +6

      в с# в 99.99 % случаях не нужен, пишеться только если к примеру обьект волочит за собой какие-то "unmanaged" связи, к примеру соединения с файлами, внешние какие-то соединения, так вот можно написать деструктор явно (неявно он и так там есть, просто его не показывает) и указать в нем что нужно закрыть соединения и вот это все, чтобы не было утечек памяти и другой ерунды.

    • @user-rw5qr4ub5o
      @user-rw5qr4ub5o Před 7 lety

      Олег сколько тебе лет?

    • @roman1324
      @roman1324 Před 6 lety

      Вы о чем ? В C# нет Деструктора ))) если что. о_0 , да да , нет деструктора ))) Вы наверное путаете с finalize. Это финализатор! он срабатывает только перед уничтожением объекта GC-ом. Пользоваться им нужно очень умело! Потому что если нелезть в GC, то одному создателю извесно когда вызовется финализатор. И все это время у вас будут захвачены ресурсы. Если вым нужно освобождать правильно и вовремя! ресурсы - читайте про реализацию IDisposable.

  • @user-en3dq5ul8m
    @user-en3dq5ul8m Před 2 lety

    В уроках нет структурированности : поля называем функциями, классы тоже функция, значения это переменная - что очень сильно сбивает и путает

  • @user-ig4dm6tu1w
    @user-ig4dm6tu1w Před 4 lety

    Спасибо болшое👍👍👍👍

  • @chernobyl1999
    @chernobyl1999 Před 6 lety

    Компилятор выбирает конструкторы... Мощная мысль, надо записать.
    Лучше б сразу про перегрузку методов рассказал, чем такое говорить.
    И конструктор вызывается не в зависимости от числа переменных. Еще необходимо, чтобы типы аргументов были соответствующими

  • @sop6196
    @sop6196 Před 4 lety

    Он с 8 по 15 урок записывал в один день. Можно заметить по дню сверху экрана)

  • @linkortsuev6260
    @linkortsuev6260 Před 4 lety

    Спасибо

  • @user-sp8eb8wf2q
    @user-sp8eb8wf2q Před 8 lety +6

    Спасибо,Все понятно,кроме конструкторов.Все сложно (.Классы понял.

    • @user-gq6qi5or6o
      @user-gq6qi5or6o Před 7 lety

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

    • @KostyaHoN
      @KostyaHoN Před 7 lety +1

      не автоматически, мы сами его вызываем после ключевого слова new

    • @user-gq6qi5or6o
      @user-gq6qi5or6o Před 7 lety +1

      Kostya Kravtsov "Слово" new создаёт экземпляр класса, а конструктор класса вызывается при этом автоматически.

    • @KostyaHoN
      @KostyaHoN Před 7 lety

      ты не прав, конструктор (сам метод) мы пишем после new. Например new Form();
      Здесь Form() - это и есть конструктор

    • @user-gq6qi5or6o
      @user-gq6qi5or6o Před 7 lety +4

      Kostya Kravtsov После new мы пишем имя класса, а не метода. Метод не может быть вызван до создания экземпляра класса, конструктор вызывается при его создании. Кроме видео почитай книжек по программированию, полезно будет.

  • @user-iy1yp4px4q
    @user-iy1yp4px4q Před 3 lety

    Подскажите пожалуйста . У меня есть массив 20 элементов . Я хочу создать классы исходя из этих элементов . Как мне сделать так чтобы значение элемента стало именем объекта ??

  • @hlibprishchepov322
    @hlibprishchepov322 Před 3 lety +1

    ы одно ухо влетело в другое вылетело после водных процедур!!мне что теперь не мыться чтобы не забыть выученое?

  • @vlad_zavr
    @vlad_zavr Před 4 lety +1

    9:38 Чекайте время

  • @xeither289
    @xeither289 Před rokem

    GOD JESUS TOLD US TO LOVE GOD AND TO LOVE ONE ANOTHER! LET'S NOT DESTROY THIS WORLD! NO WAR!!! БОГ СОЗДАЛ ТАКОЙ ПРЕКРАСНЫЙ МИР! НЕ БУДЕМ РАЗРУШАТЬ МИР! ПОЛЮБИМ БОГА И ВСЕХ ЛЮДЕЙ! НЕТ ВОЙНЕ!!

  • @user-yu7nb3jq6z
    @user-yu7nb3jq6z Před 3 lety

    А если создать 2 конструктора, которые будут принимать одинаковые параметры, как компилятор поймёт, какой надо? Или такие нельзя создать будет?

  • @grom5530
    @grom5530 Před 8 lety +5

    Сколько уроков планируется по c# ?

  • @EnzoStealth
    @EnzoStealth Před 6 lety +1

    я точно чего- то недопонял.
    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 );
    всё просто. я так и знал =)

    • @Утро_понедельника
      @Утро_понедельника Před 5 lety

      Спасибо большое!

    • @elmoraine
      @elmoraine Před 5 lety

      cat = new Animal ("tom", 2, true ); это же переопределение существующего кота, не создание нового

    • @helloxtesIa
      @helloxtesIa Před 5 lety

      1. Все экземпляры класса должны иметь УНИКАЛЬНЫЕ ИМЕНА!
      2. cat = new Animal() ПЕРЕОПРЕДЕЛЯЕТ параметры уже существующего экземпляра, но никак не создаёт новый!
      Будьте внимательнее!
      Для создания нового экземпляра, лучше использовать более разумные имена, если котов несколько! Например:
      Animal cat_siam = new Animal ("jora", 3, true);
      Animal cat_pers = new Animal ("tom", 2, true);
      Таким образом вы имеете несколько экземпляров котов и можете с ними работать независимо друг от друга.

    • @PuishImov
      @PuishImov Před 5 lety

      @@helloxtesIa спс помог

    • @helloxtesIa
      @helloxtesIa Před 5 lety

      @@PuishImov Не за что! Будут вопросы - обращайтесь!

  • @user-ms8je4yd2d
    @user-ms8je4yd2d Před 7 lety +3

    В его примере ошибка. Count не считает количество операций вызова класса animal.Так как он написал код у него получается обычное сложение count.
    Это можно увидеть по выведенной ощипке на строке 31. Она там ненужна так как пример записан не правильно. Время 4:22

    • @philipp_surname
      @philipp_surname Před 7 lety +7

      то есть как правильно ты решил не писать

    • @helloxtesIa
      @helloxtesIa Před 5 lety

      Немного не корректно вы написали... Когда он добавил инкремент переменной count в конструктор, то, по вашему, это не счётчик количества экземпляров класса? Когда мы создаём новый экземпляр, в статическую переменную плюсуется 1 и выводим результат, который будет равняться количеству созданных экземпляров. Чем не счётчик?! Можно, конечно, реализовать это всё ещё, как минимум, 3-мя способами, но что изменится?!

  • @user-zq3mp5ri7o
    @user-zq3mp5ri7o Před 5 lety

    Такой вопрос почему нельзя вставить 2 параметризированых конструктора
    ?

  • @CrazyDed114
    @CrazyDed114 Před 2 lety

    первому животному по дефолту присваеваится 1 конструктор,второму (если создать в нужных скобах переменные и при их инициализации )присваеваится второй конст.А если я хочу еще одного животного,то как присвоить ему новый конст без ошибки?

  • @f0cus570
    @f0cus570 Před 6 lety

    Почему в консоль выводит 2 раза с метода Print ? Это из-за того, что Count увеличивается ? Там же цикла нету... Не могу понять как это работает. Подскажите

    • @helloxtesIa
      @helloxtesIa Před 5 lety

      Каждый раз, при создании нового экземпляра класса, срабатывает конструктор класса, в котором мы добавляем к переменной Count единицу и выводим результат методом Print(). Поэтому, без какого-либо цикла 2 раза выводится Print(). Если создадите 3 экземпляра, то будет выведено 3 раза, т.к. конструктор отработает 3 раза.

  • @danilamukha925
    @danilamukha925 Před 4 lety

    8:39 И-АА

  • @mastervfx663
    @mastervfx663 Před 6 lety +1

    Я тебе там, у тебя, на какую-то штуку с права кликул.

  • @yamalaha
    @yamalaha Před 4 lety

    Советую использовать вместо name = _name;
    this.name = name;

  • @immortal4394
    @immortal4394 Před 6 lety

    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 ();
    }
    }
    }

  • @user-mo7xk8tz8u
    @user-mo7xk8tz8u Před 6 lety

    Помогите не работает, я все правильно списал? Работаю на 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();
    }
    }

  • @gavrilihin
    @gavrilihin Před 6 lety

    а можно не присваивать одну переменную другой в конструкторе? а в аргументах сразу юзать их.

    • @gavrilihin
      @gavrilihin Před 6 lety

      так мы бы убрали доп. переменные _name, _age и _happyness

  • @user-sp8eb8wf2q
    @user-sp8eb8wf2q Před 8 lety +1

    void не понял почему в некоторых методах поставил void,а в других поставил ?

    • @timur_gavschannel8945
      @timur_gavschannel8945 Před 8 lety +3

      void означает, что метод ничего не будет возвращать

    • @galahear5152
      @galahear5152 Před 5 lety

      @@timur_gavschannel8945 LOL понятно объяснил

    • @PuishImov
      @PuishImov Před 5 lety

      @@timur_gavschannel8945 а что означает "возвращает/не будет возвращать"? Или же спустя несколько уроков я пойму?

    • @tinytoon9169
      @tinytoon9169 Před 5 lety +3

      @@PuishImov Подожди еще пару лет хД

    • @user-lm8py5rb4m
      @user-lm8py5rb4m Před 3 lety

      @@PuishImov ты ещё раньше этодолжен был понял

  • @rinatkin7703
    @rinatkin7703 Před 5 lety

    я думаю что, в самом классе переменые не меняються, а меняються в экземпляре ( копии) который вы создаете и если создать еще одит экземпляр в нем переменые остаються такие же как и в настояещем классе (оригинал), поправте если не так

  • @nkrbv9516
    @nkrbv9516 Před 5 lety

    3:31

  • @architect5181
    @architect5181 Před 4 lety

    # Животноводство

  • @user-sl2fb7yb2b
    @user-sl2fb7yb2b Před 5 lety

    А почему в конце "Animal.count" а не "dog"?

    • @deprydepp
      @deprydepp Před 5 lety +1

      потому что переменной count мы добавили static, что означает, что она не относится к объектам, которые мы создавали (собаки), а остается статической по отношению к классу (class Animal)

  • @Qnoize
    @Qnoize Před 5 lety

    Чёт я не понял, а почему, при изменении Имени, оно поменялось в классе, а каунт остаётся на месте?!

  • @tentaclz3996
    @tentaclz3996 Před 7 lety

    Бог богов.

  • @user-uw7je5ui2w
    @user-uw7je5ui2w Před 6 lety

    Парень вообще не заморачивается, как это (statik) на самом деле работает. Как блондинка на авто с АКПП))). Или специально так делает?

    • @Orakcool
      @Orakcool Před 4 lety

      +Андрей Глазов, т.е. для Вас уровень абстракции ничего не значит? Зачем заморачиваться со статик, если на данном уровне абстракции это работает именно так.
      В задаче "о времени прибытия поезда" информация сколько стоили билеты и куда летел крокодил будет лишней))))))

  • @user-sm3zv2xq1d
    @user-sm3zv2xq1d Před 5 lety

    Д/З бы(

  • @trojangosling
    @trojangosling Před 3 lety

    Что-то я вообще не понял про static...

  • @nazargrin6087
    @nazargrin6087 Před 4 lety

    кто из 2019 тот не ОЛД(

  • @eto_ya_ya_ya
    @eto_ya_ya_ya Před 2 lety

    я начинаю не понимать.

    • @eto_ya_ya_ya
      @eto_ya_ya_ya Před 2 lety

      как много вариантов вызова, как много вариантов всего, я так скоро путаться начну

  • @xeither289
    @xeither289 Před rokem

    GOD JESUS TOLD US TO LOVE GOD AND TO LOVE ONE ANOTHER! LET'S NOT DESTROY THIS WORLD! NO WAR!!! БОГ СОЗДАЛ ТАКОЙ ПРЕКРАСНЫЙ МИР! НЕ БУДЕМ РАЗРУШАТЬ МИР! ПОЛЮБИМ БОГА И ВСЕХ ЛЮДЕЙ! НЕТ ВОЙНЕ!!