Loading [MathJax]/extensions/tex2jax.js
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

posted Dec 15 '14

MiB gravatar image

Metodu #new definuješ tak, že např. vyvolá výjimku:

new
    self error: 'Use #ic: to create new instances.'

A v metodě #ic: použiješ self basicNew initialize místo self new pro vytvoření nové instance:

ic: ic
    ^ self basicNew
        initialize;
        ic: ic

Nově vytvořené instanci je nutné zaslat #initialize, protože to právě standardně zajišťuje #new, které v tomto případě obcházíš.

click to hide/show revision 2
No.2 Revision

Metodu #new definuješ tak, že např. vyvolá výjimku:

new
    self error: 'Use #ic: to create new instances.'

A v metodě #ic: použiješ self basicNew initialize místo self new pro vytvoření nové instance:

ic: ic
    ^ self basicNew
        initialize;
        ic: ic

#basicNew je primitivní metoda pro skutečné vytvoření nové instance. Nově vytvořené instanci je nutné zaslat #initialize, protože to právě standardně zajišťuje metoda #new, které (je definována jako ^ self basicNew initialize), kterou v tomto případě obcházíš.