5

私は誰かの他のコードを見ていました、そして彼らはパッケージ名を使ってそれをコーディングします。

String filename = "";

java.io.PrintWriter writer;

writer = new java.io.PrintWriter(new java.io.FileWriter(filename));

構文は、パッケージ名でコーディングされていなかった場合と同等ですか?Javaで許可されているので、パッケージ名でコーディングすることはできますか?

4

4 に答える 4

8

次の場合は、パッケージ名(または「完全修飾名」-これはパッケージ名とクラス名を一緒に参照します)を使用する必要があります。

  1. 同じソースファイルで同じ名前の2つのクラスを使用する必要があります。
  2. importいずれにせよ、使用しているクラスは使用しませんでした。(通常は狂気です。)
  3. あなたimportはクラスを編集しましたが、私にはわからないので、とにかくパッケージ名を使用しています。
于 2013-02-09T23:05:09.693 に答える
7

完全修飾名を使用することは、指定されたクラスがインポートされた場合と意味的に同じです。

FQNの考えられる使用法の1つは、同じ名前で異なるパッケージの2つのクラスを操作する必要がある場合です。

import java.util.Date;

Date date = new Date();
java.sql.Date sqlDate = new java.sql.Date(date);
于 2013-02-09T23:05:20.997 に答える
3

パッケージ名を使用することはでき、コードはまったく同じですjava.io。プログラムの上部にあるパッケージからクラスをインポートする必要があります。

import java.io.PrintWriter;
import java.io.FileWriter;

String filename = "";
PrintWriter writer;

writer = new PrintWriter(new FileWriter(filename));
于 2013-02-09T23:04:20.663 に答える
3

あいまいさを回避する方法として、パッケージを含むクラス名を記述できます。たとえば、プログラムにPrintWriterという名前のクラスが2つあるとすると、java.io.PrintWriterjava.ioから1つを取得します。

「標準」クラスでもかなりの重複した名前が存在することは実際には驚くべきことではありません。たとえば、Dateはjava.utilとjava.sqlに存在し、Queueはjava.utilとjavax.jmsに存在します。何度も。

于 2013-02-09T23:04:55.447 に答える