Objects are instances of a class. Classes are objects, so they have methods. 'self class' returns the class of self. If a class doesn't have a methods ... ... the search continues in the superclass. (every class has a superclass ... apart from Object). If you download the Blue Book - "Smalltalk-80 - The language and it's implementation", it's free on the net, you'll find an AWSOME explanation and diagram from page 270 on, until ... ... the final map : classes and metaclass. but you've to read it these pages, before. There's a 'metaclass' concept to acquire. Bon voyage !    Davide On 12/12/2020 20:20, g_patrickb--- via Pharo-users wrote:
I understand if you have Class A with methods p and q that you can call q from p doing:
self q
But there are some cases where a method doesnât exist but self is still used. I found a tutorial on creating a Reddit type app and it had a .mcz which I loaded.
Here is an example from Class StLoggedInComponent and method refreshReport:
self report rows: (self session user tasks select: self filterBlock).
There is a method âreportâ so I understand that, but there is no method named âsessionâ so what is the use of self?
And Class StDatabase has method âupdateTask:â has:
self subclassResponsibility.
But no method called âsubclassResponsibilityâ exists in the Class.
Also, Class StLoggedInComponents has method âtestTasksâ with this:
^ self class testTasks
What is âself classâ?
Thank you.
-- Ing. Davide Grandi linkedin : http://linkedin.com/in/davidegrandi