|
||||||||||||||||||||||||||
| 1 2 3 4 次のページ | ||||||||||||||||||||||||||
| はじめに | ||||||||||||||||||||||||||
|
今回、説明する継承・インスタンスに関するコーディング規約は、コーディング規約というよりもJavaを利用する上で知っておくべき項目がほとんどです。これらの知識が不足していると、発見や追跡が困難なバグを発生させる原因となりかねません。これらの規約をしっかりと押さえ、品質のよいプログラミングを心がけてください。
本連載で紹介する規約に関しては、規約名のみを記述しています。規約そのものは、以下のURLからダウンロードして確認してください。
http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf |
||||||||||||||||||||||||||
| 継承 | ||||||||||||||||||||||||||
|
Javaでは推奨しない記述方法でもアプリケーションとしては動作してしまう場合があります。このようなことはパフォーマンスを下げる要因となるとともに、バグが発生した場合には大きな修正が発生することにもなります。 以下では継承に関する規約を紹介します。継承関係にあるクラス・メソッドの関係を把握し、正しく継承してください。 |
||||||||||||||||||||||||||
| スーパークラスのインスタンス変数をサブクラスでオーバーライドしない(C_IHT001) | ||||||||||||||||||||||||||
|
Javaではスーパークラス/サブクラスで同一名称のフィールドの宣言が可能です。表題には「オーバーライドしない」とありますが、同一名称のフィールド間にオーバーライドという関係はありません。 つまりこれは、スーパークラスで宣言されたフィールドとサブクラスで宣言された同名のフィールドは、各々のクラスに従属する独立したフィールドとして扱われるからです。 サブクラスでスーパークラスのフィールドと同一名称のフィールドを宣言することを「継承によるフィールドの隠蔽」と呼びます。 「継承によるフィールドの隠蔽」はJavaの言語仕様としては認められているものの、これを利用する積極的な理由はほとんどありません。「継承によるフィールドの隠蔽」はサブクラスの可読性が低下するため利用すべきではありません。さらに、サブクラスを作成する際には、スーパークラスで宣言されているフィールドを誤って隠蔽していないかを確認する必要があります。 また本規約とは直接関係はありませんが、スーパークラスで定義されているスタティックメソッドと同一のシグニチャを持つスタティックメソッドをサブクラスで定義した場合にも、オーバーライドではなく「継承によるメソッドの隠蔽」となるため、同様の配慮が必要となります。 |
||||||||||||||||||||||||||
|
1 2 3 4 次のページ |
||||||||||||||||||||||||||
|
参考文献など
Javaコーディング規約2004は以下のサイトおよび書籍として発表しています。本連載と共に参考にしてください。 「Javaコーディング規約2004」 http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf 「オブジェクト倶楽部」 Javaコーディング規約2004は、オブジェクト倶楽部で公開して頂いております。 http://www.objectclub.jp/ 「超図解 Java ルールブック」 Javaコーディング規約が「超図解 Java ルールブック」という名前で書籍になりました。規約の詳しい内容に関しては本書籍をご覧ください。 http://www.x-media.co.jp/xbook/index.cfm?ID=6 Javaコーディング規約を理解するに際しての参考サイトをご紹介します。 「Code Conventions for the Java Programming Language」 http://java.sun.com/docs/codeconv/ ※日本語訳を提供しているページ http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/ Java コーディング規約を理解するに際しての参考書籍をご紹介します。 「Java の格言」 「Java の鉄則」 「リファクタリング - プログラミングの体質改善テクニック」 「The Elements of Java Style」 「Effective Java - プログラミング言語ガイド」 「Essential Java Style」 |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||

