6

(デフォルトパッケージ)には、「ダイアログ」と呼ばれるメソッドを持つ「鳥」と呼ばれるクラスがあります。

次のように、同じパッケージ内に Class1 というクラスを作成できます。

public class Class1
{
    public static void main(String[] args) 
    {
        Bird b = new Bird("Alexander",true,5);
        b.dialog("tweet!");
    }
}

これは実際に機能し、実際にtweet!コンソールで確認できます。

Class1私の質問は次のとおりです:パッケージにある場合、コードに何を追加する必要がありますかFundamental (クラスBirdは「デフォルトパッケージ」にあります)? この場合、「鳥の種類が認識されません」というエラーが表示されます。おそらく何らかの方法でパッケージを示す必要があります。

副次的な質問: 1. クラスパスとは何ですか? また、どのように変更しますか? この用語がパッケージ関連の議論の文脈で漠然と使われているのを見たことがありますが、今挙げたような明確な例はありません。2. xxx.bla.zzz という名前のパッケージを何度も見てきましたが、これは標準ですか? 私は通常、一般的な名前のみを使用します (. で区切られた 3 つではありません)。パッケージは、他の言語の名前空間の Java の置き換えであることを理解しています。言及する価値のある解決策がいくつかある場合は、感謝します。ありがとうございました!

4

3 に答える 3

3

JLS(第7.5章。インポート宣言http://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html#jls-7.5)によると、デフォルトの(名前のない)パッケージからインポートすることはできません。

名前のないパッケージ(§7.4.2)の型には正規名がないため、あらゆる種類のインポート宣言での正規名の要件は、(a)名前のないパッケージの型をインポートできないこと、および(b)静的メンバーを意味します。名前のないパッケージ内のタイプのはインポートできません。そのため、§7.5.1、§7.5.2、§7.5.3、および§7.5.4はすべて、名前のないパッケージに型(またはその静的メンバー)をインポートしようとすると、コンパイル時エラーが必要になります。

于 2013-01-30T01:14:17.253 に答える
2

これまでに提供された解決策は役に立ちますが、NetBeans を使用している場合は、問題を解決するのが非常に簡単です。プロジェクトに移動し、右クリックして新しいパッケージを開くを選択します。NetBeans は、新しいパッケージを作成するためのダイアログを提供します。これが秘訣です。注: 新しいパッケージが一意に識別されるように、新しいプロジェクト名が他のパッケージと同じ名前で始まらないようにしてください。たとえば、新しいパッケージに別の名前を付けます。

newPackage;

次に、パッケージを使用する予定のクラス ファイルで import ステートメントを使用できます。

import newPackage.SecondClass;

実際にコード補完 ctr + spaceBar を使用して、パッケージがよく見えるようにすることができます。

これは簡単だと思います。 このスクリーンショットをチェックしてください

于 2016-02-29T17:33:22.287 に答える