Инициализация нового объекта в C # - PullRequest
0 голосов
/ 10 октября 2018

Я новичок в C # и пытаюсь понять инициализацию объекта.Мой вопрос: могу ли я инициализировать новый объект без каких-либо параметров и только с пустыми фигурными скобками?имеет ли это смысл?

Например: объект имени класса = новое имя класса {};

Любая помощь приветствуется

1 Ответ

0 голосов
/ 10 октября 2018

да, вы можете инициализировать объект без каких-либо параметров, позвольте мне объяснить, объект - это просто копия из класса, у него есть копия всех открытых методов и полей внутри этого класса.Мы используем объекты для доступа к членам класса, поэтому давайте предположим, что у вас есть два класса X и Y, и вы хотите иметь возможность использовать нестатические открытые члены класса X в классе Y, тогда в классе Y вы можете создать экземпляр объекта из классаX

X myObjectName = new X();

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

public X (int num) {
this.num = num;
}

Это в основном означает, что когда вы создаете экземпляр объекта из класса X, вам также потребуется передать целое число для инициализации поля num в классе X. Тем не менее, вы должны знать, что при любом значении, с которым вы инициализируете num, это значениеэто просто копия, которая существует в летВаш объект, но не другие объекты и не сам класс, например, вы можете сделать следующие два объекта из класса X в классе Y

X object_1 = new X(5);
X object_2 = new X(12);

это не значит, что вы измените значение поля num в классеX скорее означает, что вы создали два объекта, которые являются копиями этого класса, и каждая копия имеет различное значение num.Поэтому причина, по которой вы можете создать объект без инициализации каких-либо полей, заключается в том, что, например, вы хотите получить доступ только к методам класса или, возможно, вам нужны значения по умолчанию для полей.Кстати, вы можете перегрузить конструкторы, что означает, что вы можете использовать несколько конструкторов, например, один, который не требует аргументов, поэтому вы можете использовать его, когда хотите создать экземпляр объекта без каких-либо параметров, тот, который принимает целое число, и вы используете его, когдавы хотите инициализировать значение поля num при создании экземпляра объекта example

public X () {

}

, а другой -

public X(int num) {
this.num = num
}

Тогда в классе Y вы можете сделать это

X object_1 = new X();
X object_2 = new X(15);

Надеюсь, я дал вам хорошее объяснение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...