書籍「メタプログラミングRuby」に記載されている、クラスインスタンス変数の説明文が、どうにも腹落ちしなくて

 ASCII「メタプログラミングRuby」を読んでいて疑問に思った部分がある。 同著のP.144からP.145にかけて、「4.1.4 クラスインスタンス変数」の説明があって 以下はそこからの引用。

class MyClass  
  @my_var = 1
  
  def self.read; @my_var; end
  def write; @my_var = 2; end  
  def read; @my_var; end  
end  
  
obj = MyClass.new  
obj.write  
obj.read             #=> 2  
MyClass.read         #=> 1 
  
 上記のコードでは、2つのインスタンス変数を定義している。どちらも同じ@my_var
という名前だ。しかし、それぞれ異なるスコープで定義されており、別々のオブジェク
トに属している。動作を確認するには、クラスは単なるオブジェクトであること、それ
から、プログラムを読むときはselfを追いかけることを思い出す必要がある。1つ目
の@my_varは、objがselfとなる場所に定義されている。つまり、これはobjオブジェ
クトのインスタンス変数だ。2つ目の@my_varは、MyClassselfとなる場所に定義
されている。つまり、これはMyClassオブジェクトのインスタンス変数だ。こちらは
クラスインスタンス変数と呼ばれる。

疑問に思ったのは、上記の説明文4行目の終わりから始まる、以下の部分

1つ目の@my_varは、objがselfとなる場所に定義されている。
つまり、これはobjオブジェクトのインスタンス変数だ。

この説明で、「1つ目の@my_var」とは、class MyClass の次の行の

@my_var = 1 

のことを指しているものと思いますが、私の考えだと、これはobjで参照 されるオブジェクトのインスタンス変数 ではなく、クラスインスタンス変数 であって、説明文中、「2つ目の@my_var」として記されている、

def self.read; @my_var; end 

によって、MyClass定義の外側から、その値を読めるようにしているのでは ないでしょうか?

それとも、説明文のとおり、class MyClass の次の行の

@my_var = 1 

は、「objオブジェクトのインスタンス変数」なのでしょうか?

もし、そうで あるならば、私が何について理解が足りないか ご教示いただけると幸いです。


追記

テラテイルという、わりと最近できたQAサイトに質問を投げたら、回答して頂けた。 ありがとうございました。