2012-05-18 2 views
0

У меня есть сомнения здесь, где после стольких объяснений я до сих пор не понимаю. Почему нам нужно объявлять частные статические методы? Поскольку метод является закрытым, его можно получить только самим классом, и внутренняя функция может быть вызвана без создания экземпляра, не так ли? Или я ошибаюсь для этой концепции? Я имею в виду, я могу понять, почему у нас есть частный метод (потому что мы хотим сохранить логику только для самого класса), и я также понимаю, зачем нам нужен статический метод (поскольку нам не нужен экземпляр для доступа к методу) , Итак, мой вопрос, почему мы должны сделать его статичным, когда он является приватным? Как будто мы не хотим, чтобы какой-либо другой класс имел к нему доступ, и он не может быть вызван непосредственно из кодов (потому что он закрыт), но мы по-прежнему сохраняем его как статичный?Использование частных статических методов Концепция ООП

Извините за замешательство, но да, я смущен. Может ли кто-нибудь помочь мне в этой концепции?

С наилучшими пожеланиями, Yi Ин

ответ

2

Вам может понадобиться вызвать статический конфиденциальными от статического населения. Статическая публика не может получить доступ к нестационарным частным!

0

Другой причиной может быть производительность, в зависимости от платформы. Для платформы .NET, в documentation of FxCop, инструмент статического анализа кода от Microsoft, вы можете найти следующие высказывания:

методы, которые не имеют доступа к данным экземпляра или вызывать методы экземпляра могут быть помечены как статические (Shared в Visual Basic). После того как вы пометите методы как статические, компилятор будет выдавать не виртуальные сайты вызовов этим членам. Испускание не виртуальных сайтов вызовов предотвратит проверку во время выполнения для каждого вызова, который гарантирует, что текущий указатель объекта не равен нулю. Это может привести к измеримому усилению производительности для кода, чувствительного к производительности. В некоторых случаях отказ в доступе к экземпляру текущего объекта представляет собой проблему корректности.

Смежные вопросы