public function __construct()
 {
     $this->publicProperty = 100;
     self::$publicStaticProperty = 1;
     Foo::$publicStaticProperty = 2;
     $this->protectedProperty = 200;
     self::$protectedStaticProperty = 1;
     Foo::$protectedStaticProperty = 2;
     $this->privateProperty = 300;
     self::$privateStaticProperty = 1;
     Foo::$privateStaticProperty = 2;
     $this->publicMethod();
     $this->finalPublicMethod();
     self::publicStaticMethod();
     Foo::publicStaticMethod();
     $this->protectedMethod();
     $this->finalProtectedMethod();
     self::protectedStaticMethod();
     Foo::protectedStaticMethod();
     $this->privateMethod();
     $this->finalPrivateMethod();
     self::privateStaticMethod();
     Foo::privateStaticMethod();
     echo self::ALWAYS_PUBLIC_CONST;
     echo Foo::ALWAYS_PUBLIC_CONST;
 }