オブジェクト指向 Advent Calendar が空いていたので,飛び入りします! が, Java の文法はなんとなく知っているけど OOP は身についていないビギナー向けです.拙い解説かもしれませんが何かのお役に立てたら幸いです. Introduction 新人に Java を教える中で,Java Collection API を扱うようになると,自分なりに調べた新人君が書いた以下の様なコードを,よく見ます.(この記事を書こうと思った日は,1日で3回見ました...)
正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと
// AGroupClassRunner.java /** * インタフェース。 * Bグループのクラスで作るはずの機能を呼び出すために * Aグループ側で用意します。 */ interface BGroupInterface { /** * 抽象メソッド。 * 計算してもらいます。 */ int calc( int lh, int rh ); } /** * Aグループのクラス。 */ class AGroupClass { /** * Bグループの処理を行うインタフェース。 */ BGroupInterface bGroup; /** * 何か処理をするメソッド。 */ void doLogic() { // 色々処理をしてー。 // Bグループの機能を呼び出す箇所。 int i = bGroup.calc( 100, 200 ); System.out.println( i ); /
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く