専門家に聞いた!繰り返す痔の原因は!? >>

javaの環境変数の%CATALINA_HOME%のCATALINAってなんですか?
どんな由来でカタリーナなのか気になります。
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

http://www.mulesoft.com/tomcat-catalina

How Did Catalina Get Its Name?

There's nothing like an Apache product name to raise an eyebrow - the Apache volunteers have a knack for turning out oddly named technologies that's only rivaled by Ubuntu's "adjective-animal" naming format.

The name "Catalina," according to Craig McClanahan, who designed the original architecture of the servlet container, can be attributed to three things: his love for Catalina Island (despite never having visited it), his cat's habit of hanging around the computer while he was writing the code, and the consideration, at an early stage of development, of building Tomcat on a server framework called Avalon, which is the name of a town on Catalina island.

The Avalon framework was eventually abandoned, but the name stuck, and the rest is history.


http://en.wikipedia.org/wiki/Santa_Catalina_Isla …
    • good
    • 0
この回答へのお礼

島の名前だったのかー

ありがとうございますー

お礼日時:2010/09/05 20:21

CATALINA_HOMEはJavaの環境変数と言うよりはApache Tomcatの環境変数です。


Apache Tomcatのサーブレットコンテナの名前がCatalina。
    • good
    • 0
この回答へのお礼

ありがとうございました。

知識が増えました。
ただ本当はカタリーナの由来が知りたかったのです。
開発者の彼女の名前だったりするのかなーって思ったので。

お礼日時:2010/08/22 21:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「%CATALINA_HOME%」とはどこのフォルダなのでしょうか?  環境設定が困っています

こんにちわ。
今、「10日で覚えるJSP/サーブレット入門教室 第2版」
をの環境設定をしているのですが、
「JDBCドライバ」の設定の仕方がわからない点があります。
教えていただきたく思います。

参考書の説明文では
入手したJDBCドライバ
[mysql-connector-javaX.X.X-ga.zip](Xはバージョンです)を解凍後、
生成された
[mysql-connector-javaX.X.X-ga]フォルダ内の
[mysql-connector-javaX.X.X-ga-bin.jar]ファイルを
(因みに僕のバージョンは"3.0.15"です)

----------ここまではわかりました。--------------------

----------次からがわからないです。--------------------
上記の続きです。
[%CATALINA_HOME%/common/lin]フォルダにコピーして下さい。
この[%CATALINA_HOME%]とは何なんでしょうか?
フォルダと言っているので、フォルダですよね?
でも[%]の意味がわからないです・・・・。
[%CATALINA_HOME%]と言ったフォルダが無いですし、
それらしき物も見当たらずどうすれば良いのかわからないです・・・。
------------------------------------------------------------------


どうか教えて頂きたいのですが、
お願いします。
環境設定すらできないのは、情けなく思っています。
でも、やりたいので教えて欲しいです。
お願いします。

こんにちわ。
今、「10日で覚えるJSP/サーブレット入門教室 第2版」
をの環境設定をしているのですが、
「JDBCドライバ」の設定の仕方がわからない点があります。
教えていただきたく思います。

参考書の説明文では
入手したJDBCドライバ
[mysql-connector-javaX.X.X-ga.zip](Xはバージョンです)を解凍後、
生成された
[mysql-connector-javaX.X.X-ga]フォルダ内の
[mysql-connector-javaX.X.X-ga-bin.jar]ファイルを
(因みに僕のバージョンは"3.0.15"です)

----------ここまではわかりました。-...続きを読む

Aベストアンサー

あなたがインストールしたTOMCATのインストールディレクトリです。

MS-DOSのプロンプトから echo %CATALINA_HOME%
で表示できるはずです。

CATALINA_HOMEは環境変数ですよ。

QeclipseとTomcatについて

TOMCAT5.0.28とeclipse2.1.2
j2sdk1.4.2_13
を使ってます。
エクリプスからTOMCATを起動するとすぐに終了になってしまいます。
TOMCATのバージョンとjdkのバージョンを上げる前は起動していたんですが。。
どこの設定が悪いのでしょうか?
また、TOMCAT5.0.28にはservlet.jarはないのでしょうか?

Aベストアンサー

>プラグインもバージョンが絡んでるんですかね。。
>古いとかあるんでしょうか?

もしかしたらあるかもしれませんね。

こちらでは 3.1 finalリリース版を使用しました。
Eclipse2.x系をご利用とのことなのでプラグインも3.0か2.1.1bですよね。


それはさておき、簡易的に環境を作ってプロジェクトの移行を試してみました。
Tomcat 4.1.34 → 5.0.28
JDK 1.5.0_08 → 1.4.2_13

Eclipseプロジェクトを作り変える時に気付いた点を書いておきます。
なお、回線きつくて Eclipse2.x を入手できなかったので 3.2 を使いました。
JDK1.4.1はSUNで見つけられなかったので環境を変えるという意味でダウングレード(1.5アンインストール後1.4インストール)してみました。

項目名に若干違いがあると思うので適当に読み替えてください。

[1]PCの環境確認
[1-1]
 環境変数`JAVA_HOME`をJDK1.4.2_13インストールパスに変更
[1-2]
 環境変数`PATH`に`%JAVA_HOME%bin` が含まれているか確認
 (コマンドプロンプトで `java -version` を実行して`1.4.2`に変わったことを確認。
 `javac`はバージョンチェックコマンドが無いようなので案外ハマり所かもしれない)
[1-3]
 [1-2]でバージョンが変わらない時は
 Windowsフォルダ等のシステム系のパスにjava.exe, javac.exe等が
 入っていないかを確認する
 (自分はJDK1.5.0_08のjava.exe, javac.exeが入っていたので消しました)
[補足]
 なお、自分は開発機を公開用WEBサーバにはしませんので、
 TOMCAT_HOMEやCATALINA_HOMEを環境変数には加えていません。


[2]Eclipseの設定確認

[2-1]
 [ウインドウ→設定], [Java→インストール済みJRE]のJRE定義のロケーションが、
 1.4.2になっていないので、[編集]ボタンでJREのホームディレクトリをJDK1.4.2のパスに変更する
[2-2]
 [ウインドウ→設定], [Tomcat]の`バージョン`を 5.x に変更。
 `Tomcatホーム`を 5.0.28のインストールパス に変更。
 (ちなみに、TOMCAT5.0.28の起動だけならこの時点で可能でした)
[2-3]
 [ウインドウ→設定], [Tomcat→JVMの設定]でJREが[2-1]で定義したJRE名になっているかを確認
[2-4]
 [プロジェクト→プロパティー], [Javaのビルド・パス], [ライブラリ]の
 `JREシステムライブラリ`がJREが[2-1]で定義したJRE名になっているかを確認
[2-5]
 [プロジェクト→プロパティー], [Javaのビルド・パス], [ライブラリ]が
 5.0.28のものになっているかを確認。
 
 ▼TOMCAT4.1.34のライブラリ
  TOMCAT_HOME/common/lib/jasper-runtime.jar
  TOMCAT_HOME/common/lib/servlet.jar

 ▼TOMCAT5.0.28のライブラリ
  TOMCAT_HOME/common/lib/jasper-runtime.jar
  TOMCAT_HOME/common/lib/servlet-api.jar (ファイル名変更されている)
  TOMCAT_HOME/common/lib/jsp-api.jar (新規追加されている)
 
[2-6]
 [プロジェクト→プロパティー], [Tomcat], [全般]の項目を適当に変更してから
 元に戻して[適用]ボタンを押す。
 (Tomcatのserver.xml内に記述されている `<Context path="~" (略)>`を書き直させる為
 もちろん、Eclipseを起動していない状態で(Tomcat)\conf\server.xmlを直接編集してもいい)
[2-7]
 [パッケージエクスプローラ]の`(Eclipseプロジェクト)\work\org\apache\jsp`内の
JSPのキャッシュファイルを削除
[2-8]
 TOMCATプラグインにより、Eclipse上でTomcat起動と`HelloWorld`出力JSPの動作を確認


もし、動作しましたら向学の為にも今回の原因と対策を教えてください。

以上です。

>プラグインもバージョンが絡んでるんですかね。。
>古いとかあるんでしょうか?

もしかしたらあるかもしれませんね。

こちらでは 3.1 finalリリース版を使用しました。
Eclipse2.x系をご利用とのことなのでプラグインも3.0か2.1.1bですよね。


それはさておき、簡易的に環境を作ってプロジェクトの移行を試してみました。
Tomcat 4.1.34 → 5.0.28
JDK 1.5.0_08 → 1.4.2_13

Eclipseプロジェクトを作り変える時に気付いた点を書いておきます。
なお、回線きつくて Eclipse2.x を入手できなかった...続きを読む

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

QEclipseでのJDBCドライバについて

Eclipse3.1でデータベース(mysql)にアクセスするプログラムを作ったのですが下記のエラーが出ます。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

これはJDBCドライバのセットアップがうまく出来ていないからなのでしょうか?
またEclipseでは、~.jarというファイルをプロジェクトのWEB-INFのlibフォルダに入れれば使える印象があるのですが、参考書(EclipseのではなくJAVAなどの)などにあるようにTomcatのインストールフォルダ以下common/libに入れて環境変数を変更しないといけないのでしょうか?

ご存知の方教えてください、よろしくお願いします。

Aベストアンサー

WEB-INF以下に入れると実行はできるのですが、エクリプスが.javaファイルをコンパイルすることができません。projectの一覧を右クリックしてpropertyを選択し、ダイアログ右側からJava Build Pathを選択し、タグからLibrariesを選び、Add JARsボタンをおして.jarファイルを登録して下さい。
たぶんこれでコンパイルできるはずです。

QTomcatは起動しますが初期index画面が表示できません

Tomcatについての質問は多数寄せられておりますが、
それらを参考にしてインストールなど行いますが、
どうしても後一歩のところで私の場合表示できないという、もどかしい状態になっております。
どうかご存知の方いらっしゃいましたらご教示お願い申し上げます。

Tomcat5.0をWindowsXPで起動しております。
Javaはj2sdk1.4.1_02です。
通常インストールした後Startup.batを起動し、IE6.0で
http://localhost:8080もしくは
http://127.0.0.1:8080と入力、Enterキーを押しますが、画面に
Connection refused
--------------------
Description: Connection refused
と表示されてしまいます。

下記に参考になるかわかりませんが、各種起動状態を記載いたします。アドバイスよろしくお願い申し上げます。

◆コマンドプロンプトで
>ping localhostと入力すると、
-----
Pinging yamamoto [127.0.0.1] with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
-----

と表示されます。また、
>telnet localhost 8080の場合は
-----
接続中: localhost...ホストへ接続できませんでした。 ポート番号 8080: 接続に失敗し
ました
-----
と表示されます。

お手数ですが、よろしくお願い申し上げます。

Tomcatについての質問は多数寄せられておりますが、
それらを参考にしてインストールなど行いますが、
どうしても後一歩のところで私の場合表示できないという、もどかしい状態になっております。
どうかご存知の方いらっしゃいましたらご教示お願い申し上げます。

Tomcat5.0をWindowsXPで起動しております。
Javaはj2sdk1.4.1_02です。
通常インストールした後Startup.batを起動し、IE6.0で
http://localhost:8080もしくは
http://127.0.0.1:8080と入力、Enterキーを押しますが、画面に
Connection re...続きを読む

Aベストアンサー

>Tomcatは起動しますが
とのことですが、Tomcatが起動していないと思います。

pingが通るのはTomcatと無関係で、PCが立ち上がっていれば帰ってくると思います。

telnet localhost 8080
で接続できないとのことなので、Tomcatが起動できていないのではないでしょうか?

Qeclipseとtomcatで404エラー

-----------------------------------
Windows7 Ultimate

eclipse Indigo
tomcat 5.5
-----------------------------------

eclipseとtomcatを使用して、JSPを動かそうとしています。
eclipseとtomcatとJDKはC:\pleiadesの下に配置しています。そしてワークスペースは
C:\workspace\Testとして登録しています。(ちなみに動的Webプロジェクトで作成しています)

既存のJSPファイルをeclipse上で右クリックして、サーバーで実行とすると、eclipseの画面上にきちんと表示されるのですが、その後、そこで動いていたtomcatを終了させて、eclipseの上部にあるtomcatのアイコンをクリックし、その後、通常のブラウザで表示させようとすると404エラーが出てしまいます。(http://localhost:8080/Test/test.jsp)

そもそも右クリック→実行の際に起動するtomcatとeclipse上部にアイコンで存在するtomcatはどう違うのでしょうか?

そしてどうすれば、上部のtomcat起動からブラウザで直接JSPを呼び出すことが出来るのでしょうか?

申し訳ありませんが、ご教授お願い致します。

-----------------------------------
Windows7 Ultimate

eclipse Indigo
tomcat 5.5
-----------------------------------

eclipseとtomcatを使用して、JSPを動かそうとしています。
eclipseとtomcatとJDKはC:\pleiadesの下に配置しています。そしてワークスペースは
C:\workspace\Testとして登録しています。(ちなみに動的Webプロジェクトで作成しています)

既存のJSPファイルをeclipse上で右クリックして、サーバーで実行とすると、eclipseの画面上にきちんと表示されるのですが、その後、そこで動いてい...続きを読む

Aベストアンサー

EclipseからTomcatを起動した場合、プロジェクトに生成されたWebアプリケーションのディレクトリをTomcatの公開ディレクトリに強制的に変更しています。普通に起動すると、プロジェクトのディレクトリはTomcatの公開ディレクトリにはなっていませんから表示は出来ません。

通常、Eclipseで作成したWebアプリケーションは、WARファイル(Webアーカイブ)として書き出し、それをデプロイします。Eclipseの「エクスポート」メニューでWARファイルを作成し、そのファイルをTomcatの「webapp」フォルダに入れてください。これで公開できるはずです。

QCATALINA_HOMEの取得方法について

Webアプリケーション(Javaサーブレットベース)のインストーラ作成に関して、質問がございます。

Tomcat4.0のホームディレクトリ(CATALINA_HOME)を取得し、その情報をもとにWebアプリケーションの自動インストールを考えております。
しかし、現状CATALINA_HOMEの取得方法が見つからないため苦労しております。

ちなみに、Tomcat3.2の場合(TOMCAT_HOME)は、java.lang.System.getPropertyメソッドで取得することができます。

質問の内容は、以下の3項目です。

1.CATALINA_HOMEを取得する方法はあるでしょうか?
2.Tomcat4.0の導入時に、CATALINA_HOMEって必ず設定されているもの
  なのでしょうか?
3.何か参考にできる既存のインストーラはありませんでしょうか?

以上の結果、CATALINA_HOMEを取得できないと判った場合には、Tomcatのホームディレクトリをインストール時にユーザに指定させる方向で考えております。

ちなみに、インストーラは、InstallAnywhere 4.5 Enterprise で
WWWサーバ環境は、Win2000、WinNT、Linuxを想定しております。

Webアプリケーション(Javaサーブレットベース)のインストーラ作成に関して、質問がございます。

Tomcat4.0のホームディレクトリ(CATALINA_HOME)を取得し、その情報をもとにWebアプリケーションの自動インストールを考えております。
しかし、現状CATALINA_HOMEの取得方法が見つからないため苦労しております。

ちなみに、Tomcat3.2の場合(TOMCAT_HOME)は、java.lang.System.getPropertyメソッドで取得することができます。

質問の内容は、以下の3項目です。

1.CATALINA_HOMEを取得する...続きを読む

Aベストアンサー

ちょっと話が伝わってなさそうなので補足です。

>java.lang.System.getProperty("tomcat.home");
>java.lang.System.getProperty("catalina.home");
>servletのコードからでなければ取得できません。

tomcat3.2動作中のWebアプリケーション(servletのコード)
の中でjava.lang.System.getProperty("tomcat.home");
を使うことでtomcat3.2のホームディレクトリを取得できた
のではありませんか?

同じように

tomcat4.0動作中のservletの中で
java.lang.System.getProperty("catalina.home");
で取得して確認してください。

私の環境下では何の問題もなく取得できています。
windows2000 tomcat 3.2.4 tomcat 4.0.3

>InstallAnywhereでは、インストール時にJavaのAPIを
>叩くことが出来るので、この件に関しては問題ありません。

勝手な想像ですか、ここで確認しようとしてませんか?
tomcat3.2やtomcat4.0に関わらず取得できないと思われますが。

方法は私の思いつく限りで三通り。
1.tomcat付属の専用APIを調査。
(おそらく取得できるんではないかと。やり方も一番スマート)

2.Webアプリケーションの中で"catalina.home"の値だけ返す
servletを用意してjava API(URL classかな?)で接続して取得する。
(一番楽ではないかと)

3.プロセス起動(Process class)。
たとえばwindowsなら"SET CATALINA_HOME"ですね。
(OS依存が激しい。はじめに"os.name"取得しなきゃいけませんね)

SystemプロパティはOSの環境変数を反映しているわけではありません。
全部見ましたか?

import java.util.*;

public class sys {
public static void main( String[] params ) {
Properties pro=System.getProperties();
for( Enumeration e = pro.propertyNames() ; e.hasMoreElements(); ) {
String header = (String)e.nextElement();
System.out.println( header );
System.out.println( pro.getProperty(header) );
System.out.println();
}
}
}

ちょっと話が伝わってなさそうなので補足です。

>java.lang.System.getProperty("tomcat.home");
>java.lang.System.getProperty("catalina.home");
>servletのコードからでなければ取得できません。

tomcat3.2動作中のWebアプリケーション(servletのコード)
の中でjava.lang.System.getProperty("tomcat.home");
を使うことでtomcat3.2のホームディレクトリを取得できた
のではありませんか?

同じように

tomcat4.0動作中のservletの中で
java.lang.System.getProperty("catalina.home");
...続きを読む

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む


人気Q&Aランキング