complete oop learning notes