Generically across programming languages...
- a private method can only me invoked by an object of the same class (or subclass) i.e. it can only be invoked by itself.
- a public method can be invoked from any object.

In Pharo, variables are private and methods are public.

The advantage of private methods is to avoid��users calling utility methods that only do half the work to leave data in a consistent state.
Also its clear which methods are outside you public API��so you are free you change those without impacting users.

Rather than such a forced constrint, Pharo deals with private methods by convention:��
- prepending "private" or "basic" to the front of the method name
- placing methods into a protocol (or method category) named "private". ��
- having a protocol "api" for the public api and everything else to be considered private
Note that "protocols" have no impact on program execution - they are just an organisational tool.

All reflects Pharo philosophy...��
Reduced forced constraints making it��quicker��and��easier to program "in the flow"
i.e.��you "can" break convention��and call "private" methods if that is pragmatic��and you��are willing��
to accept the risk��that you don't properly comprehend the��behavior��or the behaviour changes later without warning.

cheers -ben







On Thu, 15 Nov 2018 at 12:44, iu136 via Pharo-users <pharo-users@lists.pharo.org> wrote:
hello guys
I'm new to programming, I started programming using pharo, I had a question
about pharo's object model. In object model we say, methods are public. What
does "public" mean here?
thanks



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html