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.