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