Java для начинающих. Урок 22: Ключевое слово final.

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 81

  • @alishevN
    @alishevN  6 ปีที่แล้ว

    Регистрируйтесь на курс "Продвинутая Java": th-cam.com/video/rRe1vT0SDD8/w-d-xo.html
    Практикуйтесь в написании Java кода: java-marathon.tilda.ws

    • @mopo3ujibhuk
      @mopo3ujibhuk 3 ปีที่แล้ว

      Доброго времени суток, хотел узнать по поводу второй ссылки, нажимаю перейти в телеграмм, пишет ссылка уже недействительна, а также хотел узнать о цене, там на странице нигде не увидел стоимость 2 недель. Спасибо

  • @ЯковПермитин-э2ж
    @ЯковПермитин-э2ж 4 ปีที่แล้ว +18

    Огонь ! Я чувствую себя умным с вашими видео :D

    • @niklaus9
      @niklaus9 10 หลายเดือนก่อน +1

      ну что, стал программистом?

  • @Zhidunov
    @Zhidunov 9 ปีที่แล้ว +60

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

    • @alishevN
      @alishevN  9 ปีที่แล้ว +5

      +Никита Жигунов Пожалуйста)

    • @Диас-щ1ж
      @Диас-щ1ж 7 ปีที่แล้ว +1

      Для начинающих самое то, всё понятно и легко! А где вы сами научились джаве? Книги? Курсы? Или что-то другое?

    • @vladimirplohotniuk5214
      @vladimirplohotniuk5214 4 ปีที่แล้ว

      ты хотел сказать наверное "круто для любителей халявы", и нежелающим платить на чужой труд

    • @Zhidunov
      @Zhidunov 4 ปีที่แล้ว +1

      @@vladimirplohotniuk5214 а смысл платить за базовые вещи, которые находятся в бесплатном доступе? Просто кто-то хуже объясняет, кто-то лучше. Платно обычно то, что позволяет в более сжатые сроки изучить куда больший объем информации, ещё и с ментором, чтоб по граблям не ходить.

    • @who-1880
      @who-1880 4 ปีที่แล้ว

      @@vladimirplohotniuk5214 а ты не думаешь, что некоторые не могут платить за платнве курсы? Или легь подольше думать...

  • @Neural.Academy
    @Neural.Academy 5 ปีที่แล้ว +15

    Смотрю после книги. 22 урока на одном дыхании. Как многие пишут и правда все очень доступно и главное подробно объясняешь. Всем роликам лайк

    • @gingerCatStore
      @gingerCatStore 3 ปีที่แล้ว +3

      После какой книги?

    • @leonidas8404
      @leonidas8404 ปีที่แล้ว

      @@gingerCatStore, скорее всего, речь идёт о книге Шилдта.

    • @Gidropoljb
      @Gidropoljb 10 หลายเดือนก่อน

      вы стали программистом?

    • @Neural.Academy
      @Neural.Academy 10 หลายเดือนก่อน

      @@Gidropoljb типа того. Пишу для себя если нужно что-то, но по профессии не работаю

  • @ВиталийЗубов-с3ь
    @ВиталийЗубов-с3ь 7 ปีที่แล้ว +10

    Красава, на 40 секундах мог заканчивать видео))) Лайк!

    • @Gidropoljb
      @Gidropoljb 10 หลายเดือนก่อน

      вы стали программистом?

  • @JohnDoe-oe3dg
    @JohnDoe-oe3dg 6 ปีที่แล้ว +6

    Огромное спасибо! Испытывал сложности с пониманием статических методов, урок идеально расставил все по местам

    • @Gidropoljb
      @Gidropoljb 10 หลายเดือนก่อน

      вы стали программистом?

  • @Rommel7755
    @Rommel7755 6 ปีที่แล้ว +11

    Тут не показано, но есть вариант отложить инициализацию константы (конечная переменная) после объявления ее в методе объекта. С статической константой такой фокус не пройдет. Пример:
    public int setYgrek() {
    final int YGREK;
    if (age > 3) {
    YGREK = 20;
    } else {
    YGREK = 10;
    }
    return YGREK;
    }
    после присваивания наша константа будет принимать значение для каждого созданного объекта. т.е в каждом объекте будет своя константа игрек.

    • @olegst9636
      @olegst9636 5 ปีที่แล้ว

      Нифига оно не константу возвращает
      class Human {
      int r;
      public Human(int r) {
      this.r = r;
      }
      public int setAge (){
      final int age;
      if (r < 10){
      age = 100;
      } else {
      age = 200;
      }
      return age;
      }
      }
      public class InstanceCounter {
      public static void main(String[] arguments) {
      int tt;
      Human human1 = new Human(22);
      tt = human1.setAge();
      System.out.println(tt); // 200
      human1.r = 3;
      tt = human1.setAge();
      System.out.println(tt); // 100
      }
      }

    • @Rommel7755
      @Rommel7755 5 ปีที่แล้ว +1

      Ну так в классе Human чего то не хватает наверно да? Естественно что метод setAge () тупо вернет числовое значение и все.. А кому он его вернет? короче..
      public class Person {
      int r;
      final int AGE;
      public Person(int r) {
      this.r = r;
      if (r < 10) {
      AGE = 100;
      } else {
      AGE = 200;
      }
      }
      @Override
      public String toString() {
      return "Person{" +
      "age =" + AGE +
      " r = "+ r + '}';
      }
      }
      public class Test {
      public static void main(String[] args) {
      Person person1 = new Person(20);
      Person person2 = new Person(5);
      System.out.println("person1 " + person1 );
      System.out.println("person2 " + person2);
      person1.r = 3;
      person2.r = 21;
      System.out.println("person1 с изменнным р" + person1);
      System.out.println("person2 с изменнным р" + person2);
      }
      }
      Констаты как присвоились так и остались на месте независимо от того что я там снова в объекте поменял.

    • @DolphinArtem
      @DolphinArtem 3 ปีที่แล้ว

      @@Rommel7755 да уж, про это автор не говорил, наверное ЭТОТ пример надо было показывать. Сидел минут 10 думал как так, хотя не совсем еще понял, почему теперь поля объекта меняю, а AGE как присвоилась первый раз объекту так и осталась. Можешь объяснить? Блин кажись дошло))). После того как в конструкторе для объекта она присвоилась, потом уже не изменить ее. Стоп )))). Дак тут не нужен final для нее тогда ))). Я запутался...

  • @nikiforovsansanich
    @nikiforovsansanich 4 ปีที่แล้ว +1

    Очень доходчивое объяснение! Спасибо большое!

    • @Gidropoljb
      @Gidropoljb 10 หลายเดือนก่อน

      вы стали программистом?

  • @Anton-wz1ch
    @Anton-wz1ch ปีที่แล้ว

    Всё по полочкам. Сильно

  • @quicktime1205
    @quicktime1205 2 ปีที่แล้ว +1

    Еще простой пример:
    Объявляем переменную типа int и записываем в нее число 5.
    final int a = 5;
    Далее прибавляем к числу 5 еще 5, пытаясь записать результат в переменную 'a'.
    a+=5;
    И тут среда разработки "ругается", что нельзя присваивать к переменной 'a' никаких значений. Стоит убрать префикс 'final', как все работает.
    Убедиться в этом можно очень просто - вывести результат на экран: System.out.println(a);

  • @hikmatasgarli7036
    @hikmatasgarli7036 5 ปีที่แล้ว +16

    // final - не можем изменит значение или преусвоить другое значение (констант) это последнее значение
    // константы все с большой буквы
    // Сеттеры мы не можем создать в константе(final)

  • @blackcrusader8595
    @blackcrusader8595 7 ปีที่แล้ว +4

    хорошим тоном считается не использовать keyword "this" при обращении к собственным members класса (касаемо метода setCONSTANT)

  • @ДаниилГончаренко-г8я
    @ДаниилГончаренко-г8я 6 ปีที่แล้ว +2

    Не знаю насколько бы я всё понял если бы впервые увидел надпись "final", но достаточно просто объяснил. Но!!!! Самое крутое что видео записывалось скорее всего с утра 1-го января. Ты псих)))) Лайк тебе однозначно.

    • @СергейСак-б6в
      @СергейСак-б6в 6 ปีที่แล้ว

      2 января записывалось(у него справа сверху на компе день недели указан, который приходился на второе января в 16 году)

  • @ВячеславХарламов-е9р
    @ВячеславХарламов-е9р 8 ปีที่แล้ว +2

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

    • @Gidropoljb
      @Gidropoljb 10 หลายเดือนก่อน

      вы стали программистом?

  • @propilen3
    @propilen3 ปีที่แล้ว

    Так, я праивильно понял, что final static переменные уже известны на момент компиляции программы и должны быть обязательно проинициализированы? Типа тру константы. Захардкожены в программу.
    (const val в котлине)
    А final переменные - это когда значение поисваивается в процессе выполнения программы, но только один раз (val в котлине).

  • @azatnabiullin2263
    @azatnabiullin2263 3 ปีที่แล้ว +2

    А почему ты говоришь, что обычно переменные с final бывают и static тоже? Мне кажется, так же часто они и не statis нужны. Например, в конструкторе при создании объекта (например, нового клиента) необходимо присвоить ему неизменяемый id пользователя. У каждого экземпляра класса (клиента) он будет свой, так что тут static делать не нужно. Или это не так работает?

    • @DolphinArtem
      @DolphinArtem 3 ปีที่แล้ว

      Вроде правильно сформулировал.

    • @xstorm9939
      @xstorm9939 2 ปีที่แล้ว +1

      в современном мире айди меняется

  • @jamjam3337
    @jamjam3337 5 หลายเดือนก่อน

    спасибо!

  • @nickpush1279
    @nickpush1279 4 ปีที่แล้ว +2

    Всем привет! Подскажите, пожалуйста, что обозначает слово "public" при создании метода, или переменной. Так как я понял, что это обозначает при создании класса ("public" - обозначает, что может существовать только один главный класс, и его имя должно совпадать с именем .java файла, а вспомогательных классов может быть сколько угодно). Собственно, не понятна его("public") роль в этих случаях: 1. При создании метода "main"; 2. При создании методов во вспомогательных классах; 3. При декларации переменных/статических-переменных во вспомогательных классах.
    Заранее спасибо и всем хорошего дня!

    • @SeVeR2100
      @SeVeR2100 4 ปีที่แล้ว +5

      Public это модификатор доступа. Это значит, что всё что может вызываться с этим модификатором (буть-то класс, метод, поля класса и т.д.), будет доступно для вызова или изменения откуда угодно в нашей программе. Грубо говоря, этот модификатор нивелирует правило инкапсуляции. Это как я понял сам только начал изучать java. Удачи!

    • @FerraKube
      @FerraKube 4 ปีที่แล้ว +2

      public'ом , по сути, помечается всё, что должно быть доступно конечному пользователю по итогу. Что не должно, то скрывается за private, protected и default

  • @C2H5OHH
    @C2H5OHH 2 ปีที่แล้ว

    Спасибо!

  • @НиколайУльман
    @НиколайУльман 2 ปีที่แล้ว

    Так, что то я не понял, в смысле если константа не статик то она общая для всех экземпляров класса? Это ведь не так. Просто при создании каждого из Обь ектов будет инициалищироваться своя константа и своим значением. Разве нет?

  • @МаринаПирожкова-ю9с
    @МаринаПирожкова-ю9с 8 ปีที่แล้ว +8

    Вы просто находка для студентов!!!! настолько все понятно и доходчиво! надеюсь сдам зачет по джаве, потому что смотрю ваши уроки и пока что все понятно!!
    вопрос: есть ли у Вас уроки по С#

    • @alishevN
      @alishevN  7 ปีที่แล้ว

      Спасибо вам.
      Уроков по C# пока нет.

    • @manOfPlanetEarth
      @manOfPlanetEarth 4 ปีที่แล้ว +2

      сдала зачёт?

    • @DolphinArtem
      @DolphinArtem 3 ปีที่แล้ว +1

      @@manOfPlanetEarth походу в армию забрали

    • @manOfPlanetEarth
      @manOfPlanetEarth 3 ปีที่แล้ว

      @@DolphinArtem
      🤣🤣🤠

  • @Ночнойпутник-щ1з
    @Ночнойпутник-щ1з ปีที่แล้ว

    Спасибо

  • @yusupsm9312
    @yusupsm9312 8 ปีที่แล้ว +1

    Здравствуйте, не совсем понятно на 4:30 минуте ролика когда при инициализации в методе main, переменная продолжает подчеркиваться красной линией т.е. инициализация переменной через метод main не проходит?

    • @Отрезкиизфильмов-т7и
      @Отрезкиизфильмов-т7и 7 ปีที่แล้ว

      переменную помеченую final изменять нельзя, поэтому компилятор ругается.

    • @Lexoid65
      @Lexoid65 7 ปีที่แล้ว +5

      Дело в том, что переменная не просто имеет модификатор final, но ещё и является статичной (это не всегда обязательно, но в нашем примере получается именно так), а статичные переменные (поля) создаются сразу же на этапе декларирования их внутри класса и требуют начальной инициализации именно на этом этапе. Что произошло в нашем примере? Мы объявили статичную константу без явной инициализации (это не значит, что никакой инициализации не произошло, если мы по какой-то причине не проинициализировали статичную переменную явно, то она проинициализируется неявным для нас образом значением по умолчанию, для простейшего типа int таким значением по умолчанию является 0 (ноль)), но тем не менее, она уже хранит в себе значение по умолчанию. Поскольку статичная константа была неявно проинициализирована 0 (нулём), мы не можем перепреисвоить ей другое значение внутри метода main(), так как переменная является final, то бишь, константой.

  • @blackcrusader8595
    @blackcrusader8595 7 ปีที่แล้ว +2

    uppercase используется для обозначения static final, а не просто final

  • @korumstar9989
    @korumstar9989 6 ปีที่แล้ว +1

    Понятно. Спасибо.

  • @wivernx9449
    @wivernx9449 4 ปีที่แล้ว

    почему Вы поля класса делаете public, и сеттер? как же инкапсуляция¿ вообще уроки хороши, лукасы постараюсь проставить

  • @bari9631
    @bari9631 4 ปีที่แล้ว

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

    • @DolphinArtem
      @DolphinArtem 3 ปีที่แล้ว

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

  • @Anatoli-bq1pe
    @Anatoli-bq1pe 2 ปีที่แล้ว

    Лайк

  • @Nurbolat-vv6vh
    @Nurbolat-vv6vh ปีที่แล้ว

    Не понял что такое статик финал не понятным языком говоришь

  • @ruslankolesnichenko6014
    @ruslankolesnichenko6014 6 ปีที่แล้ว +11

    Извините, пожалуйста. Очень путают оговорки и поправки, когда пытаешься ухватить мысль своими не тренированными мозгами. Пожалуйста, немного лучше готовьтесь к записи видео, если это возможно. Спасибо Вам за уроки.

    • @beaver4529
      @beaver4529 3 ปีที่แล้ว +2

      Гораздо смешнее когда лектор за ваши же деньги в оплаченное вами время лезет гуглить по теме лекции. Вот это да, умора. А здесь все на очень достойном уровне, понятно и доходчиво.

    • @xstorm9939
      @xstorm9939 2 ปีที่แล้ว

      где ошибки и оговорки?

  • @justoleg6001
    @justoleg6001 4 ปีที่แล้ว +4

    Народ, читаю ваши комментарии и в шоке, кто у нас софт собирается писать, от которого возможно будут зависеть жизни людей. Короче, открываете книгу, там буквы, складываете их, получаются слова, я понимаю что это сложно, но придётся это преодолеть. Потому что судя по комментариям, книги вы принципиально не открываете, раз узнаёте столько "нового", что в принципе является базой базы и написано чуть ли не в первом абзаце. Что вы учите тогда я вообще хз, кошмар.

    • @ГаннибалБарка-л8р
      @ГаннибалБарка-л8р 4 ปีที่แล้ว

      Какие книги посоветуете новичку? Я, например, сейчас читаю Шилдта, но в сети плохо отзываются о книге (конкретно о русской версии).

    • @manOfPlanetEarth
      @manOfPlanetEarth 4 ปีที่แล้ว +1

      красава👍🏼😂😂😂😂😂

    • @manOfPlanetEarth
      @manOfPlanetEarth 4 ปีที่แล้ว +2

      только выдели, пож-та, "возможно" запятыми.

    • @manOfPlanetEarth
      @manOfPlanetEarth 4 ปีที่แล้ว +2

      "судя по комментариям" есть деепричастный оборот. Ты знаешь, что с ним делать.

    • @justoleg6001
      @justoleg6001 4 ปีที่แล้ว

      @@ГаннибалБарка-л8р Эккеля хвалят, мне он тоже зашёл, Шилдт хороший автор, профессионал, но его книги лучше как справочник использовать, он глубоко в теорию копает.

  • @beaver6430
    @beaver6430 7 ปีที่แล้ว

    все бы ничего но чувак поставь в плей листе по порядку видосы это оч легко делается незнаеш как обращайся подскажу ... ато надо каждый раз переключать в ручную... это пппц

    • @alishevN
      @alishevN  7 ปีที่แล้ว +1

      Ок, сделаю.

  • @fersa8351
    @fersa8351 2 ปีที่แล้ว

    Кажется твои ошибки в коде были не запланированными, и ты в действительности читал чтобы понять где напорол ведь сам не совсем ознакомлен с материалом. Видимо совсем не хотя записывал это

  • @blackcrusader8595
    @blackcrusader8595 7 ปีที่แล้ว +2

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

    • @HeTDeHer
      @HeTDeHer 7 ปีที่แล้ว

      Black Crusader не соглашусь с мнением насчет канала, но рекомендацию о том, что посмотреть на английском спрошу)

    • @frommambetia
      @frommambetia 7 ปีที่แล้ว +5

      ты дохуя умный человек, запили свои видео о джаве.

    • @DolphinArtem
      @DolphinArtem 3 ปีที่แล้ว

      @@frommambetia посмотри, это просто выскочка поэтому ему никто не отвечает не спускайся до его уровня.