Почему можно установить закрытый член для экземпляра объекта того же класса внутри объекта?

Кто-нибудь может объяснить, почему яя могу установить приватный член$bar в ?TestFoo::getFooInstance()

TestFoo::getFoo2Instance() однако возвращает фатальную ошибку.

Я всегда предполагал, что закрытые члены должны быть доступны только из одного экземпляра объекта, а не из одного класса объекта?

bar = "To bar or not to bar";
        return $instance;
    }

    public static function getFoo2Instance()
    {
        $instance = new TestFoo2();
        $instance->bar = "To bar or not to bar";
        return $instance;
    }

    public function getBar()
    {
        return $this->bar;
    }
}

class TestFoo2 {
    private $bar;
    public function getBar()
    {
        return $this->bar;
    }
}

$testFoo = TestFoo::getFooInstance();
echo $testFoo->getBar();

// returns PHP fatal error
//$testFoo2 = TestFoo::getFoo2Instance();
//echo $testFoo2->getBar();
?>

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

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