214 похожих чатов

Зачем в Java и C# нужен оператор new, если там

все объекты ссылочные?

94 ответов

221 просмотр

Как одно с другим связано? Я рил не понимаю

Не все

Серый-MLGamer Автор вопроса

И в Java?

Серый-MLGamer Автор вопроса

Какие?

Оператор NEW создает новый экземпляр класса. Ты можешь через этот оператор создать 3 обьекта и они будут различные между собой.

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

Серый-MLGamer Автор вопроса
T::Dïmä <🐿>
Как одно с другим связано? Я рил не понимаю

Потому что если все объекты ссылочные, то другой способ вызова конструктора не нужен. Значит, в new нет необходимости. А в C++ и (по странным обстоятельствам) в JavaScript они нужны.

Серый MLGamer
Потому что если все объекты ссылочные, то другой с...

В Java есть примитивы, которые не являются объектом

Серый MLGamer
Прям конструкторы?

я не понимаю про что ты говоришь

Серый-MLGamer Автор вопроса
Nikolay Desyatkov
в жс можно объекты создавать и без new

А, ты про JS. Я про Java в этот момент думал.

Серый MLGamer
Потому что если все объекты ссылочные, то другой с...

Там через new ты конструктор нужный или дефолтный вызываешь типа

Серый MLGamer
А, ты про JS. Я про Java в этот момент думал.

Ну дамал, про джаву, написал про джаваскрипт :D

Серый-MLGamer Автор вопроса
Серый-MLGamer Автор вопроса
T::Dïmä <🐿>
Да

То есть это вот такая внезапная почти нативная вставка в ядро языка для увеличения производительности на полшишечки?

Серый MLGamer
То есть это вот такая внезапная почти нативная вст...

Я думаю что это просто наследие. В дарте можно делать var c = Client()

Серый MLGamer
В Python тоже.

Ну питон никогда и не был сиподобным языком

Серый-MLGamer Автор вопроса
Nikolajs Djačenko
Ну питон никогда и не был сиподобным языком

Модный, современный, стильный, молодой язык программирования!

Серый-MLGamer Автор вопроса
Серый MLGamer
Модный, современный, стильный, молодой язык програ...

Хоть и сделан давно, выглядит до сих пор футуристично!

Андрей
Оператор NEW создает новый экземпляр класса. Ты мо...

Он и не только для этого служит, ещё можно делать сокрытие с помощью NEW

Серый MLGamer
Модный, современный, стильный, молодой язык програ...

Не молодой . Просто начал популярность набирать сейчас

Почему внезапная? Почему на полшишечки, лол.

А как создать объект без new? Чисто из любопытства не делал так ни разу

В F# let a = A() Конструктор, это функция, которая возвращает объект.

Серый-MLGamer Автор вопроса

Потому что сравниваю с Java. Ну и, как бы, зачем ещё тогда нужны структуры в C#, если есть классы?

А в С#

Серый-MLGamer Автор вопроса
Denys Popovych
Где нужна производительность

А что, C# - не Java? Там есть производительность?

Есть такое понятие, как мемори трафик. Сборка мусора -- длительная операция, можно её избежать, если не создавать объекты, а выделять их на стене.

Да, C# -- не джава

Зато есть Customer c = new()

Это полезно только в пропертях

Есть ещё stackalloc

Серый-MLGamer Автор вопроса

Ну, в C можно вообще до Берлина дойти в памяти. Можно, думаю, даже комп положить (пока не получалось - маленькие массивы).

поэтому на си всё подряд и не пишут

пишут, вон руби написали ж

Эээ! Епты бля, тебе там привет от лиоса товра!

Серый MLGamer
Потому что если все объекты ссылочные, то другой с...

Есть такая вещь как 'исторически сложилось', вот это один из примеров

Серый-MLGamer Автор вопроса
Ilya
Есть такая вещь как 'исторически сложилось', вот э...

Вот в C++, главное, всё нужно и имеет пользу, а в Java... Зачем нужны интерфейсы, если есть виртуальные функции в классах?

Серый-MLGamer Автор вопроса
Серый MLGamer
Вот в C++, главное, всё нужно и имеет пользу, а в ...

Внимание: нажатие на ответ откинет вас на 300 сообщений.

Серый MLGamer
Вот в C++, главное, всё нужно и имеет пользу, а в ...

А интерфейсы это контракты, выделенные синтаксически

Ты выше писал, что new в C++ не нужно и не имеет смысла

Серый-MLGamer Автор вопроса

Я писал, что new не имеет смысла в Java. В C++ new имеет конкретный смысл создания ссылочных объектов вместо обычных.

Ну, ты сказал, что в new нет необходимости

Серый-MLGamer Автор вопроса

Это тоже про Java. Я как-то там не так сказал?

Серый MLGamer
Я писал, что new не имеет смысла в Java. В C++ new...

За new в С++ коде по ебучке от лида получить можно кста

Да, ты сказал про джаву. Я добавляю, что не только для джавы. Но это уже by-design

Вообще это байт был

(:

Я вот в школе тоже думал, что сисиплюс самый сложный, а значит самый крутой

Серый-MLGamer Автор вопроса

А сейчас Java мне кажется сложнее.

Я в школе шароёбился и на девок смотрел вообще

Ну, нет

Лучше бы ты сейчас на девок смотрел

))))

Ассемблер круче значит

Серый-MLGamer Автор вопроса

Ну, вроде, тоже взобрался. Но вдруг меня впечатлил Kotlin. Сейчас у меня проблема со статическими членами.

котлин крута

Серый-MLGamer Автор вопроса

В совершенстве реализован паттерн Singleton!

Серый-MLGamer Автор вопроса
Серый MLGamer
В совершенстве реализован паттерн Singleton!

Никогда таким не пользовался, и вот опять. Статическими классами всегда пользовался.

Серый-MLGamer Автор вопроса

Ну, подумаешь, нужно перед каждой функцией virtual писать. Но зато можно определить функцию по умолчанию! Прям как в каком-то новом C#. И экземпляры этого класса создавать.

» Прям как в каком-то новом C# ну и это не хорошо

Серый-MLGamer Автор вопроса

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

создание экземпляров чего?

Серый-MLGamer Автор вопроса

Класса с виртуальными функциями.

это не класс с виртуальными функциями, а реализация интерфейса

Серый-MLGamer Автор вопроса

Реализация интерфейса - это обходы этих виртуальных функций.

почитай про интерфейсы, пожалуйста

Серый-MLGamer Автор вопроса

А как ещё интерфейсы наследуются? Разве не так, как я написал?

Серый-MLGamer Автор вопроса

Невиртуальные методы при апкасте никак не меняются.

они и не меняются, потому что у методов интерфейса в дефолтном варианте НЕТ реализации, единственная реализация есть в классе реаоизации, которая тоже не виртуальная.

Щас на тебя дефолтная реализация интерфейса обиделась

не юзаю

Vlad Doc
За new в С++ коде по ебучке от лида получить можно...

ого, я плюсы дальше универа не изучал, как там надо чтобы по красоте было?

Vlad Doc
auto a = std::make_unique<A>(42);

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта