• Ziglin@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      8 months ago

      Huh, do Java and other oop languages have them too and what are some good reasons to use them?

      • UnfortunateShort@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        8 months ago

        It allows for more fine grained access control and to implement afterthoughts.

        Think having some private function that can break things if called improperly, but also allow you to avoid significant overhead when calling it the correct way. For example you could be avoiding input validation in a public wrapper for that function. If your friendly class already does it, or cannot produce invalid inputs, there is no need for that.

        You could also implement logging after the fact, because your friendly logger object to read private members.

        Arguably it’s a questionable design decision tho, as you could do all of this in other ways and it basically breaks any guarantees private would usually give you.