При использовании C# я недавно понял, что могу называть частные функции объекта Foo
от статических функций Foo
и даже от других объектов Foo
. После всего, что я узнал о модификаторах доступа, это звучит очень странно для меня.Зачем нужны модификаторы доступа на уровне классов вместо уровня объекта?
Насколько я знаю, вы делаете функцию частной, когда она делает что-то, что является частью какого-то внутреннего процесса. Только сам объект знает, когда использовать эти функции, потому что другие объекты не должны/не могут управлять потоком объекта. Есть ли причина, почему другие объекты того же класса должны быть исключены из этого довольно простого правила?
По желанию, пример:
public class AClass {
private void doSomething() { /* Do something here */ }
public void aFunction() {
AClass f = new AClass();
f.doSomething(); // I would have expected this line to cause an access error.
}
}
Я не уверен, что вы здесь описываете. Не могли бы вы привести несколько примеров? –
Вы не можете вызвать нестатический метод из статического метода в том же классе без ссылки на объект. –