Size: a a a

2020 August 18

I

Igor in learn.java
Desmond Mails
Всем привет, есть ли тут разработчики под Android, делал тестовое задание на Flutter был первый опыт моб разработки, мне понравилось, хоть и не прошел туда.Так вот можете пожалуйста подкинуть ресурсов для новичка в этой сфере и минимальный стек технологий или что нужно конкретно что б попасть на первую работу в этой области. Заранее благодарю
источник

DM

Desmond Mails in learn.java
Спасибо
источник

BR

Berry Reid in learn.java
После того, как процессы автоматизации и искусственный интеллект станут заметны в каждом продуктовом магазине, единственным местом работы для людей станет профессия программист 🚪.
источник

B

Betelgeuse in learn.java
Linnik 🎄
Я не пойму даже как проверить это на работоспособность.
Подскажи пожалуйста, где берёшь задачи?Я недавно начал, вроде понимаю, но себе подтвердить опыт не могу
источник

B

Betelgeuse in learn.java
Если у кого есть ссылки на задачи, поделитесь пожалуйста
источник

I

Igor in learn.java
Betelgeuse
Если у кого есть ссылки на задачи, поделитесь пожалуйста
источник

B

Betelgeuse in learn.java
Спасибо!!
источник

F

Fortune's Desire in learn.java
Betelgeuse
Подскажи пожалуйста, где берёшь задачи?Я недавно начал, вроде понимаю, но себе подтвердить опыт не могу
Те задачи были с hyperskill
источник

Д

Да, Но Нет(Марк)... in learn.java
Всем прувэт!
У меня маленькая проблема со считыванием чисел из файла. Задание и сам код написаны по ссылке
https://ideone.com/fork/5tyg1h
источник

A

Anton in learn.java
Sherzod Akhmedov
если не ошибаюсь, написать override не обязательно
1. Метод C2.f(in i )  переопределяет I2.f(int i), реализует интерфейс
2. И одновременно C2.f(in i )  перегружает С2.f()
Это и переопределение и перегрузка одновременно, это нормально.

I2 o = new C2();
o.f(0);
В этом случае вызов второй строки - полиморфное поведение, вызов для ссылки типа I2 метода конкретного объекта типа C2.
А вызов переопределенного метода, с точки зрения Java - вызов другого метода.  Поэтому кажется, что это переопределение.

Практически важно понимать:
1. Каким правилам кодирования следовать, если проектируешь полиморфное поведение и ожидаешь перегрузку, чтобы вместо неё случайно не поличить перегрузку. И наборот, если планируешь перегрузку, не получить переопределение.
2. Переопределение работает в иерархии наследования. Встречается случаи сочетания наследований от интерфейсов и других классов, которые могут дать совсем не тот результат, который ожидаешь. Могут привести к ошибке компиляции, если такое наследование нарушит правила. Эти случаи описаны в спецификации.

Именно случай с возникновением ошибки описан в книге - смотри комментарий к закоментированному коду внизу - если его раскомментировать, будет ошибка компиляции. Это практический смысл примера книги.

Название в книге правильное - перегрузка,
потому что соответствует спецификации - смотри jls-8.4.9. Overloading
https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.4.9
Если два метода класса (объявлены ли оба в одном классе или оба унаследованы классом, или один объявлен и один унаследован) имеют одно и то же имя, но сигнатуры, которые не являются эквивалентными для переопределения, тогда имя метода называется перегружен .

Это тот редкий случай, когда перегрузка является полиморфизмом, хотя технически так же является и переопределением. Поэтому утверждение, что полиморфизм это только переопределение - формально не является верным.
источник

Д

Да, Но Нет(Марк)... in learn.java
Да, Но Нет(Марк)
Всем прувэт!
У меня маленькая проблема со считыванием чисел из файла. Задание и сам код написаны по ссылке
https://ideone.com/fork/5tyg1h
В файле вот такие данные: 1 -1 5 3 6 -9. А выводит вот что:
32
32
32
32
32
54
источник

Д

Да, Но Нет(Марк)... in learn.java
Да, Но Нет(Марк)
В файле вот такие данные: 1 -1 5 3 6 -9. А выводит вот что:
32
32
32
32
32
54
такой вывод может быть через сужение/расширение? или же нужен readLine() который я не понимаю как реализовать для чисел. второй день над такой простенькой задачей парюсь
источник

A

Anton in learn.java
Марик Абиев
Немного непонятно
Даже если поставишь аннотацию @Override, всё равно формально, по спецификации это будет называться перегрузка, см. ответ выше (https://t.me/javastart/261137).
Но с практической точки зрения, дизайна кода соглаcно SOLID, важней, что это переопределение.
источник

SA

Sherzod Akhmedov in learn.java
Anton
1. Метод C2.f(in i )  переопределяет I2.f(int i), реализует интерфейс
2. И одновременно C2.f(in i )  перегружает С2.f()
Это и переопределение и перегрузка одновременно, это нормально.

I2 o = new C2();
o.f(0);
В этом случае вызов второй строки - полиморфное поведение, вызов для ссылки типа I2 метода конкретного объекта типа C2.
А вызов переопределенного метода, с точки зрения Java - вызов другого метода.  Поэтому кажется, что это переопределение.

Практически важно понимать:
1. Каким правилам кодирования следовать, если проектируешь полиморфное поведение и ожидаешь перегрузку, чтобы вместо неё случайно не поличить перегрузку. И наборот, если планируешь перегрузку, не получить переопределение.
2. Переопределение работает в иерархии наследования. Встречается случаи сочетания наследований от интерфейсов и других классов, которые могут дать совсем не тот результат, который ожидаешь. Могут привести к ошибке компиляции, если такое наследование нарушит правила. Эти случаи описаны в спецификации.

Именно случай с возникновением ошибки описан в книге - смотри комментарий к закоментированному коду внизу - если его раскомментировать, будет ошибка компиляции. Это практический смысл примера книги.

Название в книге правильное - перегрузка,
потому что соответствует спецификации - смотри jls-8.4.9. Overloading
https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.4.9
Если два метода класса (объявлены ли оба в одном классе или оба унаследованы классом, или один объявлен и один унаследован) имеют одно и то же имя, но сигнатуры, которые не являются эквивалентными для переопределения, тогда имя метода называется перегружен .

Это тот редкий случай, когда перегрузка является полиморфизмом, хотя технически так же является и переопределением. Поэтому утверждение, что полиморфизм это только переопределение - формально не является верным.
Понятно, спасибо 👍
источник

IS

Ivan Stepanov in learn.java
как красиво объединить MyObject foo и List<MyObject> bar в List<MyObject>?
источник

DC

Denis Chikanov in learn.java
bar.add(foo)?
источник

IS

Ivan Stepanov in learn.java
Denis Chikanov
bar.add(foo)?
Не, оба эти элемента не нужно менять
источник

IS

Ivan Stepanov in learn.java
И foo должен быть в самом начале
источник

GV

Gukov Viktor in learn.java
Ivan Stepanov
И foo должен быть в самом начале
add(0, foo)?
источник

IS

Ivan Stepanov in learn.java
Что то типа такого хочу
источник