При использовании С# я недавно понял, что я могу вызывать частные функции объекта 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.
}
}