Вот более содержательный пример:

## Код:
```
MODULE DefO;

VAR schjotchik : SIZE;

TYPE o* = OBJECT
   VAR 
   f* : SIZE;
   skrytoePole- : SIZE;
   
   PROCEDURE &new_o*();
   BEGIN
      skrytoePole := schjotchik;
      INC(schjotchik) 
   END new_o;
   
END o;

END DefO.
```


## Код:
```
MODULE Primer;

IMPORT DefO;

VAR o1, o2 : DefO.o;
   
PROCEDURE Do*();
BEGIN
NEW(o1);
NEW(o2);
ASSERT(o1.skrytoePole # o2.skrytoePole);
o2.f := 7;
o1^ := o2^; 
TRACE(o1.skrytoePole = o2.skrytoePole);
END Do; 

END Primer.

Primer.Do  ~
```


Печатает
## Код:
```
{P cpuid= 0, pid= 8848 Primer.Do@159:(o1^.skrytoePole = o2^.skrytoePole)= TRUE; }
```


Протекла инкапсуляция, единственное, поле надо было назвать не „скрытым“, а „защищённым“.