• ベストアンサー
  • 困ってます

同一パッケージ内の継承について

  • 質問No.2520327
  • 閲覧数1601
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 96% (169/176)

同一パッケージ内で継承したクラス Test2.java をコンパイルすると「シンボルを見つけられません シンボル:クラス Test1」とエラーになります。
--------Test1.java-------
package test;
public class Test1{
メソッド
}
-------------------------
--------Test2.java-------
package test;
public class Test2 extends Test1{
メソッド
}
-------------------------
Test1.java,Test2.javaとも同一フォルダ(D:\java\test)にあります。
ちなみにカレントディレクトリをD:\java\testにして
javac Test2.java
でコンパイルしようとしています。

同一パッケージ内のクラスを継承するというのはおかしなことなんでしょうか?また、コンパイルの仕方もあわせてご教示願えれば助かります。
よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 58% (7/12)

パッケージに含まれている場合はカレントディレクトリを保存している場所より1つ上の場所でコンパイルします。

今回はD:\java\testに保存してあり、パッケージ名はtestです。
ですから今回はカレントディレクトリをD:\javaの状態にしてください。
その状態で「javac test/Test1.java」とやってみてください。
Test2.javaも同様にやってみてください。
ファイルが保存してある、1つ上の状態にカレントを置いて
「javac パッケージ名/ファイル名」です。
お礼コメント
akomot

お礼率 96% (169/176)

ご回答ありがとうございます。
自分でもいろいろやってみたのですが,カレントディレクトリを
D:\java\testにしておいて javac -classpath .. Test2.java
とするとうまくいきました。これもなんだか頭がすっきりしません。
パッケージを使うのは今回初めてなのでまだまだ勉強しなくてはいけませんね。
投稿日時:2006/11/06 10:15

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 58% (347/594)

この辺を熟読するとよいです。

■型の検索
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/javac.html#searching
「ソースファイルをコンパイルする場合、
コマンド行で指定したソースファイルに型の定義が見つからないとき、
コンパイラは通常、その型に関する情報を必要とします」


■クラスの検索方法
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/findingclasses.html


■Java 起動ツールがユーザクラスを検索する方法
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/findingclasses.html#userclass
「クラス com.mypackage.MyClassの例による説明」のあたり
お礼コメント
akomot

お礼率 96% (169/176)

ご回答ありがとうございます。
紹介していただいたページを参考にしっかり勉強してみます。
投稿日時:2006/11/07 17:09
  • 回答No.1

ベストアンサー率 39% (43/110)

Test2.java に以下2つのどちらかの修正を行うとうまくいくと思います。
1)Test1 の完全クラス名を import する
具体的には、
import text.Test1;
を最初に書く。

2)Test1 を完全クラス名で書く
Test1
と書いていたところを全て
test.Test1
に置き換える。

あと、コンパイルするとき、カレントディレクトリは「D:\java\」でやってみて下さい。
お礼コメント
akomot

お礼率 96% (169/176)

早速のご回答ありがとうございます。
1)の方法でコンパイルできました。
ただ,なぜカレントディレクトリをD:\javaにしなくてはいけないのかもう少し勉強してみます。
投稿日時:2006/11/06 10:09
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ