技術書典3 新刊「オブジェクト指向言語 解体新書」
“(オブジェクト指向を)諦めたらそこで技術者終了ですよ”
技術書典3での新刊「オブジェクト指向言語 解体新書」のサポートページです。
- タイトル:
- オブジェクト指向言語 解体新書
- 内容:
-
オブジェクト指向言語の神髄…
それはメソッド呼び出しにあり!
この本ではオブジェクト指向言語の仕組みを解説します。
特にメソッド呼び出しについては丁寧に解説します。
この本を読めば、関数呼び出しとメソッド呼び出しの違いが分かるようになり、
ひいてはオブジェクト指向言語をどう使えばいいのか、実感できるようになります。
犬クラスや猫クラスを作って「ニャーン」と鳴かせることでは分からない、本当のオブジェクト指向言語の力が、この本で理解できます。
- ボリューム:
- B5サイズ、本文108ページ(まえがきや目次込みで118ページ)
- あらすじ:
-
- 第1章:準備編:変数とメモリ番地
- 第2章:初級編:基本的な仕組み
- 第3章:中級編:より高度な話題
- 第4章:ケーススタディ:Python
- 第5章:ケーススタディ:Java
- 第6章:ケーススタディ:JavaScript
- 技術書典3サークルページ:
- 技術書典3 う-12「カウプラン機関極東支部」
- 正誤表:
-
表示 ← 必ず読んで!
- p.27
誤:「super を使うと、親クラスのメソッドを呼び出せます。
この機能は、現在のクラスをスキップして、親クラスのメソッド探索表から検索を開始することで実現されます(図 2.14)。
たとえば「super.m1()」という呼び出しがあると、現在のクラスのメソッド探索表はスキップされるため、親クラスの「m1()」メソッドが呼び出されます。」
正:「super を使うと、親クラスのメソッドを呼び出せます。
この機能は、現在実行中のメソッドが定義されているクラスの親クラスから探索を開始します。たとえば子クラスで「super.m1()」という呼び出しがあると、「現在実行中のメソッドが定義されているクラス」は子クラスになるので、その親クラスから探索を開始します。通常のメソッド探索ではメソッドが見つかるとそこで終了しますが、superがあるとそこから探索を再開すると思えばいいです。」
解説:もしsuperが「現在のクラスをスキップして、親クラスのメソッド探索表から検索を開始する」という仕組みだと、superで親クラスのメソッドを呼び出し、その中でさらにsuperが呼ばれている場合にまた同じメソッドを呼び出してしまい、無限ループになってしまいます。そうならないためには、現在実行中のメソッドが見つかった場所から、メソッド探索を再開します。
- 購入先:
-