Re: php 5 classes: public, protected and private




"Jerry Stuckle" <jstucklex@xxxxxxxxxxxxx> wrote in message
news:Ib6dna_BtYQSifbYnZ2dnUVZ_sSdnZ2d@xxxxxxxxxxxxxx
jopperdepopper wrote:
You should read "can be accessed everywhere".

Private members can be accessed by members of the class only.
Protected members can be accessed by members of the class or a derived
class.
Public members can be accessed by anyone, including other classes,
functions and any other code.



Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
to classes, and so far having a hard time. I fail to see the 'why'
behind the 'public, protected and private' and stuff like abstraction,
interfaces and whatnot.

Intefaces are not necessary in PHP. Once you have defined a method it is a
total waste to time to also define an interface. Interfaces are a "fix" in
those languages as a means of dealing with optional arguments and statyic
typing. PHP has ifferent ways of dealing with bth of these, therefore
interfaces serve no useful purpose.

Feels like things are being over-complicated
somehow... or it's just my being inexperienced on this...

Any other reading material on this suggested, someone?


Look for some good books on OO theory and design.

Two of the concepts in OO are 'encapsulation' and 'methods'.

Encapsulation means the internals of an object are managed only by that
object and are not available to anyone else. In PHP these are private
members.

Wrong. Encapsulation means that the data and the functions which operate on
that data are contained (encapsulated) within a single object. While the
methods (functions) thenselves may be visible the code behind those methods
(i.e. the implementaton behind those methods) is not. Encapslation is NOT
about hiding information, it is about hiding the implementation. It is not
necessary to use public/private/protected on any methods or properties. It
does not add any functionality, it merely creates restrictions which often
get in the way.

Methods are implemented as functions in PHP. They operate on the object.

That's one thing you got right.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org


.



Relevant Pages

  • Re: php 5 classes: public, protected and private
    ... Private members can be accessed by members of the class only. ... Intefaces are not necessary in PHP. ... Interfaces are a "fix" in those languages as a means of dealing with optional arguments and statyic typing. ... Encapsulation means the internals of an object are managed only by that object and are not available to anyone else. ...
    (comp.lang.php)
  • Re: php 5 classes: public, protected and private
    ... Private members can be accessed by members of the class only. ... Intefaces are not necessary in PHP. ... the interface is the way to interact with the ... Two of the concepts in OO are 'encapsulation' and 'methods'. ...
    (comp.lang.php)
  • Re: php 5 classes: public, protected and private
    ... Private members can be accessed by members of the class only. ... Intefaces are not necessary in PHP. ... Once you have defined a method it is a total waste to time to also define an interface. ... Encapsulation means the internals of an object are managed only by that object and are not available to anyone else. ...
    (comp.lang.php)
  • Re: Does Python really follow its philosophy of "Readability counts"?
    ... Encapsulation conceals the functional details of a class from objects ... which classes may use the members of an object. ... clients of an interface from depending on those parts of the ... in Python are done merely by convention. ...
    (comp.lang.python)
  • Re: Does Python really follow its philosophy of "Readability counts"?
    ... programming: ... Encapsulation is achieved by specifying ... which classes may use the members of an object. ... in Python are done merely by convention. ...
    (comp.lang.python)

Quantcast