Questions tagged «protected»

“ protected”是面向对象语言的访问说明符。当一个类的成员被“保护”时,其他类对这些成员的访问受到限制。


17
公共,私有和受保护的有什么区别?
什么时候以及为什么要在类中使用public,private和protected函数以及变量?它们之间有什么区别? 例子: // Public public $variable; public function doSomething() { // ... } // Private private $variable; private function doSomething() { // ... } // Protected protected $variable; protected function doSomething() { // ... }
988 php  oop  private  public  protected 

16
在Ruby中对受保护的私有方法进行单元测试的最佳方法是什么?
使用标准Ruby Test::Unit框架对Ruby中受保护的方法和私有方法进行单元测试的最佳方法是什么? 我确定有人会提出并断然断言“您应该仅对公共方法进行单元测试;如果需要进行单元测试,则不应将其作为受保护的方法或私有方法”,但是我对此并不感兴趣。我有几个方法被保护的或私有的良好和有效的原因,这些私人/受保护的方法是相对复杂的,并且在类的公共方法依赖于这些保护/私有方法正常工作,所以我需要一种方法来测试受保护/私有方法。 还有一件事...我通常将给定类的所有方法放在一个文件中,并将对该类的单元测试放在另一个文件中。理想情况下,我希望所有魔术都能将这种“受保护和私有方法的单元测试”功能实现到单元测试文件(而不是主源文件)中,以使主源文件尽可能简单明了。






5
Rails中受保护的私有方法
Ruby的方法可见性(公共方法,受保护方法和私有方法)已在本博客文章之类的地方得到了很好的解释。但是在Ruby on Rails中,由于框架的设置方式,它似乎与常规Ruby应用程序中的稍有不同。因此,在Rails模型,控制器,助手,测试等中,何时/不适合使用受保护的方法或私有方法? 编辑:谢谢你到目前为止的答案。我了解Ruby中保护和私有的概念,但我希望更多地解释在Rails应用的各个部分(模型,控制器,助手,测试)的上下文中使用这些可见性的典型方式。 。例如,公共控制器方法是操作方法,应用程序控制器中受保护的方法用于需要多个控制器访问的“帮助器方法”等。

6
Python中私有和受保护方法的继承
我知道,Python中没有“真正的”私有/受保护的方法。这种方法并不意味着要隐藏任何东西。我只想了解Python的功能。 class Parent(object): def _protected(self): pass def __private(self): pass class Child(Parent): def foo(self): self._protected() # This works def bar(self): self.__private() # This doesn't work, I get a AttributeError: # 'Child' object has no attribute '_Child__private' 那么,这种行为是否意味着“受保护”的方法将被继承,但“私有”的方法将不会被继承呢? 还是我错过了什么?

13
为什么我的接口成员不能受保护?
反对在接口上声明保护访问成员的论点是什么?例如,这是无效的: public interface IOrange { public OrangePeel Peel { get; } protected OrangePips Seeds { get; } } 在此示例中,接口IOrange将保证实现者至少OrangePips为其继承者提供一个实例。如果实现者愿意,他们可以将范围扩大到完整public: public class NavelOrange : IOrange { public OrangePeel Peel { get { return new OrangePeel(); } } protected OrangePips Seeds { get { return null; } } } public class ValenciaOrange …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.