Сохранен 35
https://2ch.hk/b/res/212210153.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним 24/01/20 Птн 19:47:47 #1 №212210153 
15286466740561 (1).jpg
15404872567090.jpg
Прохрамисты есть тут? Вот давай, без компилятора, скажи че будет выведено на экран. Три метода в классе Processor. Метод run() в классе ideone. Метод run() в main вызывается с стригом "строка". Что будет выведено на экран? Загадка.



class Ideone
{
static Processor processor = new Processor();
public static void main (String[] args) throws java.lang.Exception
{
run("строка");
}

public static void run(Object o){
processor.process(o);
}
}

class Processor{
public void process(String s){
System.out.println("String");
}
public void process(Integer i){
System.out.println("Integer");
}
public void process(Object o){
System.out.println("Object");
}
}
Аноним 24/01/20 Птн 19:50:54 #2 №212210345 
Безымянный.png
Вот более понятно.
sageАноним 24/01/20 Птн 19:52:52 #3 №212210473 
object
static typization ge
Аноним 24/01/20 Птн 20:00:01 #4 №212211010 
Безымянный.png
>>212210473
>>212210473
А вот так?
sageАноним 24/01/20 Птн 20:02:24 #5 №212211177 
object
string

давай ты сразу перейдешь к дак тайпингу, динамик диспатчингу и наследованию, а то не интересно
Аноним 24/01/20 Птн 20:03:52 #6 №212211288 
>>212211177
Чому вызывается обжект, если параметр "o" содержит ссылку на стринг? Чому не стринг?
sageАноним 24/01/20 Птн 20:14:49 #7 №212212055 
>>212211288
А зачем ему умничать? Написано "обжект", ебашит обжект. Давай другие какие-нибудь вопросы задавай, двачую >>212211177-куна.
Аноним 24/01/20 Птн 20:18:28 #8 №212212302 
>>212212055
А если мне надо, чтобы он умничал? Если я сразу не знаю с чем будет вызван метод run()? Там может быть число или строка. Как мне этот код переписать так, чтобы он выбирал нужный метод? Если я просто вызову метод процесс() с числом или строкой он же сможет выбрать.
sageАноним 24/01/20 Птн 20:24:54 #9 №212212744 
>>212212302
duckduckgo://java get type of the object
Аноним 24/01/20 Птн 20:25:18 #10 №212212765 
>>212210153 (OP)
Малолетний дебил, покажи мне такой код в продакшене.
Аноним 24/01/20 Птн 20:28:14 #11 №212212956 
>>212212765
А че с ним не так?
Аноним 24/01/20 Птн 20:29:50 #12 №212213059 
>>212212744
Почему это не работает как сейчас? Если вызвать процесс со строкой, то будет все ок. В параметр передается строка. Так почему с вызовом поцесс() с параметром в котором строка он не работает как надо?
Аноним 24/01/20 Птн 20:31:15 #13 №212213172 
>>212210153 (OP)
Обнови картинку, пенсия с 65 ужо
Аноним 24/01/20 Птн 20:35:11 #14 №212213449 
Так он строку выдаст,
Потому что дернется процесс(стринг). Ты когда вызываешь ран(объекта) вместо этого объекта станет стринга.
Аноним 24/01/20 Птн 21:09:35 #15 №212215695 
>>212213449
А вот и нет.
Аноним 24/01/20 Птн 21:09:51 #16 №212215707 
>>212213449
Там же метод с объектом в типе аргумента вызывается, а не со строкой.
Аноним 24/01/20 Птн 21:12:06 #17 №212215856 
Мы передаем в метод ран() ссылку на строку. Почему когда вызываем процесс с ссылкой на строку, не вызывается метод для строки? Почему, блять?
Аноним 24/01/20 Птн 21:12:54 #18 №212215917 
>>212210153 (OP)
String

>Параметр для ран, передано стринг в мейн
Аноним 24/01/20 Птн 21:13:00 #19 №212215923 
>>212211288
Потому что резолвинг перегруженных методов производится в компайл-тайме.
Аноним 24/01/20 Птн 21:15:28 #20 №212216081 
Нахрен джаву, давайте лучше про кресты. Кто-нибудь за прошедшие годы умудрился повстречать осмысленный юзкейс для constexpr?
Аноним 24/01/20 Птн 21:19:30 #21 №212216353 
>>212215923
Ну т.е. в момент компиляции? Почему тогда не сработало? Мы же знаем заранее что там за ссылка.
Аноним 24/01/20 Птн 21:20:36 #22 №212216421 
>>212215856
Гугли static binding.
Аноним 24/01/20 Птн 21:23:31 #23 №212216604 
>>212210153 (OP)
Работал с 17 до 23х. Щас пожинаю плоды своего опыта.
мимо программист
Аноним 24/01/20 Птн 21:24:52 #24 №212216700 
>>212216421
Погуглил. Сказано, что статическое связывание работает для статик, финал и приват методов. Тут таких нема.
Аноним 24/01/20 Птн 21:27:04 #25 №212216864 
>>212216700
Метод run статический.
Аноним 24/01/20 Птн 21:30:54 #26 №212217114 
>>212216864
Это не важно. Он мог быть и не статический. Просто вызывается в майне и только потому статический.
Аноним 24/01/20 Птн 21:31:29 #27 №212217146 
image.png
А кто без конпуляктора поймет, о чем этот код?
Аноним 24/01/20 Птн 21:33:03 #28 №212217268 
>>212216604
Каким программистом? сколько денег скопил?
Аноним 24/01/20 Птн 21:37:18 #29 №212217508 
>>212217114
Ты бы не смог вызвать метод run из main, если бы он не был статическим. Тебе сначала надо было бы создать экземпляр класса в данном случае класса Ideone, который содержит этот метод.
Аноним 24/01/20 Птн 21:40:25 #30 №212217701 
>>212217508
Все это могло происходить вообще в другом классе, не майн. И не понадобились бы статические методы. Ну т.е.ю объект бы создал. Это что-то изменило бы?
Аноним 24/01/20 Птн 21:58:59 #31 №212218871 
>>212217146
>А кто без конпуляктора поймет, о чем этот код?
о лабораторной работе в какой-то шараге
Аноним 24/01/20 Птн 22:18:04 #32 №212220193 
>>212217701
забей, джавапараша просто обосралась в очередной раз, как и вся статическая типизация с ООП.
Аноним 24/01/20 Птн 22:20:18 #33 №212220331 
>>212210153 (OP)
написано "ОП-ХУЙ и его мамка - шлюха"
Аноним 24/01/20 Птн 23:19:07 #34 №212224484 
>>212210153 (OP)
Не шарю в джаве и её типизации и т.д.
В метод run подаётся object, если в джаве, как, например, в шарпах, обджект является метатипом, порождающим все другие типы, то призове метода run("строка") литерал будет неявно преобразован в обджект.
Аноним 25/01/20 Суб 00:04:06 #35 №212226988 
>>212224484
если проецировать на шарпы то проще объяснить всё это через понятие боксинга и анбоксинга
comments powered by Disqus

Отзывы и предложения