Почему вместо уровня объекта есть модификаторы доступа на уровне класса?

Во время использования 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.
    }
}

Ответы на вопрос(6)

Ваш ответ на вопрос