Skip to content

Instantly share code, notes, and snippets.

@lqc
Created August 31, 2011 19:30
Show Gist options
  • Save lqc/1184468 to your computer and use it in GitHub Desktop.
Save lqc/1184468 to your computer and use it in GitHub Desktop.
"Klasa A, ktora jest podklasa Object i nie ma zmiennych obiektowych, ma
metody obiektowe (notacja K>>m oznacza metode m w klasie K):"
A>>d
^ B new j: [:k | self]
A>>e: k
^ k
A>>e: k f: m
^ k f: m
A>>f: k
| m |
m := k.
^ self i: [m := m d]
A>>g
| k |
k := [k := [k := [self j: [:m | m j: [:n | ^ m g f: n g]]]]].
self i: [k value].
^ A new
A>>h
A>>i: k
^ k value
"Klasa B, ktora jest podklasa A i ma zmienna obiektowa 'c', ma metody obiektowe:"
B>>e: k
^ c e: k f: k
B>>e: k f: m
^ c e: k f: (k f: m)
B>>h
^ c h e: self
B>>i: k
c i: k.
^ super i: k
B>>j: k
c := k value: c
"
Przyjmujemy, ze opis obiektu sklada sie z informacji o jego klasie i z opisu wartosci jego zmiennych.
Opisz wartosc wyrazen:
A new d d d h
oraz:
A new d d d d d d g
Odpowiedz uzasadnij, podajaz znaczenie wszystkich metod klas A i B.
"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment