• ベストアンサー
  • 暇なときにでも

import について

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

お礼率 67% (27/40)

最近JAVAの勉強を始めたばかりの超初心者です。

専門用語(クラス、オブジェクト、メソッド等)に四苦八苦していますが、何とか頑張っています。

で、質問の件なのですが以下をコンパイル出来ません。

//printer.java
public class printer
{
public void print()
{
System.out.println("hello from java");
}
}


//app.java
import printer;

public class app
{
public static void main (String[] args)
{
(new printer()).print();
}
}


printer.java → printer.class のコンパイルは出来ますが

app.java をコンパイルしようとすると、以下のエラーが出ます


~$ javac app.java
app.java:1: '.' がありません。
import printer;
^
app.java:1: ';' がありません。
import printer;
^
エラー 2 個


printer.javaとapp.javaとprinter.classはすべてカレントディレクトリに入っています。

ただ、app.javaのファイルでimportの行を削除するとキチンとコンパイル実行できてしまいます。

これがなぜか分からない(自分はimportあたりが怪しいと思う)のでタイトルを「importについて」としました。

どなたか原因分かる方いらっしゃいましたら、ご教示よろしくお願いします。

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

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

ベストアンサー率 55% (492/894)

同一ディレクトリ内だと、packageで特別な指定でもしていない限り、同一パッケージなので、import文をわざわざ書かなくてもファイル名と同じ名前で中に作ったpublicなクラスは使えます。

どうしてもimportをしたい場合は、importされる側にて、packageでimportする際のパッケージ名を宣言しましょう。あと、それに応じてディレクトリ構成も変えて、class pathも設定したほうが良いです。

余談ですが、Javaではクラス名の頭文字を大文字にすることが多いです。
お礼コメント
airrace

お礼率 67% (27/40)

回答ありがとうございます。

import 行は要らなかったんですね。


>余談ですが、Javaではクラス名の頭文字を大文字にすることが多いです。
そうなんですか!勉強になります。
投稿日時:2012/02/19 01:24
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

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

関連するQ&A

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

ピックアップ

ページ先頭へ