To: "'caml-list@inria.fr'" <caml-list@inria.fr>
Subject: Encapsulation in Objective Caml
Date: Thu, 20 Aug 1998 10:51:26 -0400
From: "Mitchell, Brian, VBAVACO" <IMCBMITC@vba.va.gov>
Greetings,
I have recently begun to use Objective Caml...including reading as much
documentation as possible. However, I have a question that I did not
see within the latest documentation version (ocaml 2.00).
1. How is encapsulation handled in Objective Caml 2.0=20
I want to hide implementation details of a class. Then, the user can
only perform a restricted set of operations on the hidden members of the
class by executing special functions commonly called methods. The
actions performed by the methods are determined by me..of course, that
means I must be careful not to make the methods either overly flexible
or too restrictive.=20
2. How does this vary from Java or C++ ?
For instance, the concept of data encapsulation in C++ is through the
use of the public, protected and private keywords, which are placed in
the declaration of the class. Anything in the class placed after the
public keyword is accessible to all the users of the class; elements
placed after the protected keyword are accessible only to the methods of
the class or classes derived from that class; elements placed after the
private keyword are accessible only to the methods of the class.=20
3. Is it possible to use Messaging in OCaml 2.0 ?
When I refer to "Messaging", I mean calling a method of an object
instantiated from a class.
----------------- Fran=E7ais -----------------
Salutations,=20
J'ai r=E9cemment commenc=E9 =E0 utiliser Objective Caml ... comprenant =
la
lecture autant documentation que possible. Cependant, j'ai une question
que je n'ai pas vue dans la derni=E8re version de documentation (ocaml
2,00).=20
1. Va comment l'encapsulation manipul=E9e dans Objective Caml 2,0=20
Je veux cacher des d=E9tails de mise en place d'une classe. Puis,
l'utilisateur peut seulement ex=E9cuter un ensemble restreint =
d'ex=E9cutions
sur les membres cach=E9s de la classe en ex=E9cutant des m=E9thodes
g=E9n=E9ralement appel=E9es sp=E9ciales de
fonctions. Les actions ex=E9cut=E9es par les m=E9thodes sont =
d=E9termin=E9es par
le cours de me..bien sur, ce des moyens que je dois faire attention =E0 =
ne
pas rendre les m=E9thodes excessivement flexibles ou trop restrictives.=20
2. Comment est-ce que ceci change de Java ou de C++?=20
Par exemple, le concept de l'emballage des donn=E9es dans C++ est par
d'utilisation des mots-cl=E9s de public, prot=E9g=E9e et priv=E9s, qui =
sont
plac=E9s dans la d=E9claration de la classe. Quelque chose dans la =
classe
plac=E9e apr=E8s le mot-cl=E9 public est accessible =E0 tous les =
utilisateurs de
la classe; =E9l=E9ments plac=E9s apr=E8s que le mot-cl=E9 prot=E9g=E9 =
soient
accessible seulement aux m=E9thodes de classe ou
de classes d=E9riv=E9es de cette classe; les =E9l=E9ments plac=E9s =
apr=E8s le
mot-cl=E9 priv=E9 sont accessibles seulement aux m=E9thodes de classe.=20
3. Est-il possible d'utiliser la transmission de messages dans OCaml
2,0?=20
Quand je me r=E9f=E8re =E0 l'" transmission de messages ", je veux dire
qu'appelant une m=E9thode d'objet instantiated d'une classe.=20
Thank you (merci),
Brian Mitchell
public class seniorSystemsAnalyst extends BrianMitchell implements IMC
{
if (online !=3D true)
System.out.println("TEL - 202.275.5577 || FAX - 202.275.5092");
else
System.out.println("
company =3D http://www.imc.com &&
personal =3D http://www.esva.net/~mitchell/ &&
e-mail =3D bmitchell@imc.com || mitchell@esva.net ");
}