最速怪談選手権

テスト勉強をしています。
以前四則演算のプログラムを作りました


import java.text.*;
import java.io.*;

class _kadai1_sisokuenzan {
public static void main(String[] args) throws Exception{


int a,b,c,d,e,f,g;
double ja,jb,jc,jd,je,jf;
BufferedReader inp=new BufferedReader
(new InputStreamReader(System.in));

となっています。
はじめのimport の宣言2行の意味が全く分かりません。
なぜこのプログラムでこの文が必要なのか、簡単にご説明していただければ幸いです。

A 回答 (2件)

こんにちは。



Javaのクラス内で他のパッケージにあるクラスを利用する場合にどのクラスであるかわからない為import宣言にて定義します。

import宣言しなくても以下のようにすれば利用できますがソース大変なことになります。

java.io.BufferedReader inp = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
記述が大変ですのでimportすることにより
BufferedReader inp=new BufferedReader(new InputStreamReader(System.in));
と書くことが出来ています。

import java.io.*;
の場合java.io配下にあるクラス全てが対象になります。
(どんなクラスがあるかはJavaのAPIを見てみて下さい)

質問内のソースのみであれば
import java.io.BufferedReader;
import java.io.InputStreamReader;
の定義があれば動作します。
(import java.text.*は記載されていないどこかで利用されているはずです)
    • good
    • 0
この回答へのお礼

お二方、ありがとうございます。
しっかりと理解できました。
どちらも親切で優劣などつけれないので、
少し早くご回答していただいたLancerVIIさんをBAとさせてください。

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

お礼日時:2011/01/26 15:54

javaにはクラスを機能ごとなどに分類するためにパッケージというものがあります。


別パッケージのクラスを利用する際には、パッケージ名を含めた完全修飾名で指定する必要があります。
BufferedReaderであればjava.io.BufferedReaderというように。ちょっと手間ですよね。
対象のクラス(パッケージ)をインポートすることによって
パッケージ名の記述は不要になりBufferedReaderと記述するだけで利用できるようになります。

記載の2行の場合は、java.textパッケージとjava.ioパッケージの全クラスをインポートする、という意味です。

ですので、もしプログラム内で利用するクラスを全て完全修飾名で指定するのであれば
import宣言はなくても問題ありません。

「java インポート」 や 「java パッケージ」などで検索すると参考になるページが沢山でてくると思いますよ。
    • good
    • 0
この回答へのお礼

お二方、ありがとうございます。
しっかりと理解できました。
どちらも親切で優劣などつけれないので、
少し早くご回答していただいたLancerVIIさんをBAとさせてください。

yamada_gさんご丁寧にありがとうございました。

お礼日時:2011/01/26 15:55

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