俺もガチ初心者だが
オブジェクト指向の dog.run みたいな書き方が一読して意味が分からんわ。普通に run(dog) で良いだろうに
もしくは、せめて objDOG.methodRun とか書いといてくれれば親切なのに