Callme
метод является статическим методом. Статические методы не требуют вызова экземпляра объекта. Они не имеют ссылки this (ключевое слово) и могут быть вызваны непосредственно в классе. В вашей ситуации Test.CallMe(someValue)
. Обратите внимание, что здесь не задействован экземпляр объекта.
Если бы CallMe
НЕ был статическим методом, вам понадобился бы экземпляр / объект для его вызова. Например
Test ob = new Test();
ob.CallMe(someValue);
То, что иллюстрирует ваш пример, - это использование закрытых полей / методов.
Когда такой метод, как конструктор или поле, помечается частным ключевым словом, этот метод / поле можно вызывать / получать к нему доступ только из объявленного класса.
Это означает, что CallMe
может получить доступ к конструктору, поскольку CallMe
является членом класса, а конструктор является членом класса, поэтому они оба могут обращаться друг к другу.
Когда у класса есть только один конструктор, и этот конструктор является закрытым, это фактически означает, что экземпляр класса может быть создан только из класса.
Так что в текущем примере CallMe
создает экземпляр класса каждый раз, когда он вызывается.
Если вы позвоните CallMe
2 раза, вы создадите 2 экземпляра класса.