声明私有函数与公共函数之间有什么实际区别?

Blu*_*est 5 vb.net oop methods class

因此,当我一直在阅读/学习课程及其中的方法时,我发现将方法声明为公共方法与私有方法之间的实际差异很少.

我知道不同之处在于私有类只能在类中访问,而公共方法可以从类外部的代码(其他类,函数)访问.但我真正想知道的是:

  • 在部署应用程序时,为什么要/不想以某种方式声明它?
  • 是否有最佳实践可以指导是否声明方法公共与私有?

此外,我不知道它是否重要,但我在Web应用程序环境中主要学习VB.Net和C#,因此具体到那将有所帮助.

Mic*_*ues 9

封装意味着您应该将每个类视为提供服务的机器.例如,椅子可以让你坐在上面,或割草机可以让你剪草坪.

私有方法涉及到机器的内部工作.相反,公共方法与您(其他类)与机器的交互方式有关.

示例一: 主席......

坐在椅子上,你不需要知道填充量或主食数量,你基本上需要知道它是否被占用以及它是否稳定.

  • 公共方法:IsStable,IsOccupied,Sit
  • 私有方法:CalculateStuffingVolume,CountNumberOfStaples

示例二: 割草机......

对于割草机,你需要知道它是否有足够的燃料(或插入),如果刀片是锋利的,并且能够打开它.

  • 公共方法:GetFuelLevel,IsBladesSharp,TurnOn,TurnOff
  • 私人方法:燃烧等,太多想象.

结论:

因此,当你开发所有你将看到的是......

示例一: Chair.Sit,Chair.IsStable和Chair.IsOccupied

要么

例二: Lawnmower.GetFuelLevel,Lawnmower.IsBladesSharp,Lawnmower.TurnOn,LawnMower.TurnOff

作为开发人员,您不必考虑uphosltry中的线程数,燃料盖的颜色,刀片的RPM数或者是否将椅子胶合或钉在一起.这种区别使您可以更轻松地将应用程序放在一起而不会被详细淹没.此外,它允许程序员仅公开必要的信息,从而增加安全级别.正如约翰所提到的,这可以防止Person类在它们不应该的时候调用割草机.Combust(燃料).