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

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

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

94 ответов

83 просмотра

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

Не все

Серый-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);

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта