Являются ли конструкторы классов недействительными по умолчанию?
Я читал о конструкторах классов в C#. Примеры показывают перегруженные классовые конструкторы. И все они не имеют void
ключевое слово, и ни у них нет возвращаемого значения..
например
public Class myClass
{
public myClass()
{
}
public myClass(int id)
{
}
//other class memeber go here...
}
1) Так правильно ли говорить, что конструкторы C# void
по умолчанию?
2) То же самое относится и к Java?
3 ответа
Нет, они конструкторы, во всяком случае, вы можете думать о них как о возвращении объекта класса, из которого они происходят. Но они не являются обычным методом / функциями
Конструкторы неявно возвращают тип класса, такой же как и Java.
Конструкторы не имеют возвращаемого типа и ничего не возвращают, это не метод. Из спецификации языка C# 4.0:
Конструктор экземпляра - это член, который реализует действия, необходимые для инициализации экземпляра класса. Конструкторы экземпляров объявляются с помощью объявлений-конструктора.
атрибуты opt конструктор-модификатор opt конструктор-декларатор constructor-body
Конструктор объявляется как метод без возвращаемого типа и с тем же именем, что и содержащий класс
Здесь нет возвращаемого типа.
Конструктор вызывается через new
оператор, который является тем, который возвращает экземпляр объекта.