4

簡単な質問ですが、何度もグーグルで検索しても答えが見つかりませんでした。

パッケージ外のクラスをインポートすることは可能ですか?

2 つのフォルダーがAあり、それぞれにファイルがあるとB.javaます。句を使用して、importに含まれるクラスをインポートすることは可能Aですか? import A.Aclass? または、キーワードがある場合は常にパッケージ構文を使用する必要がありimportます ?

4

5 に答える 5

2

はい、importステートメントを使用してクラスをインポートすることは可能です。理解を深めるために、3つのフォルダfolderafolderbあり、foldercここに「」という名前の.javaファイルが含まれ、 「 」という名前の別の.javaファイルが含まれ、「 」という名前の.javaファイルがfoldera含まれていると仮定します。ここで、メンバーデータと " " in ""の操作を使用する場合は、次のようにステートメントを使用できます。ClassA.javafolderbClassB.javafoldercClassC.javaClassA.javaClassC.javaimport

import foldera.ClassA

「ClassC.java」で「ClassB.java」のメンバーデータと操作を使用したい場合は、importステートメントでも可能です。

import folderb.ClassB

Javaソースファイル宣言ルールに従って、クラスがパッケージの一部である場合、packageステートメントは、存在する可能性のあるステートメントの前に、ソースコードファイルの最初の行である必要がありますimport。この例では、"ClassC.java"ソースファイルの最初の行package foldercはにあるためでなければなりませんfolderc。同様に、"ClassA.java"ソースファイルの最初の行は。である必要があり、ソースファイルpackage folderaの最初の行は。で"ClassB.java"ある必要がありますpackage folderb

今、あなたがコンセプトを明確にしていることを願っています!ありがとうございました...

于 2013-02-26T14:55:15.390 に答える
1

クラスが を持つように定義されている場合はpackage a;、パッケージ名でクラスをインポートする必要があります。同じ名前のクラスを含む 2 つのパッケージがある場合、それぞれを呼び出す必要があるクラスでは、完全修飾名を使用する必要があります。例えば:

import a.Foo;
import b.Foo;

public class Bar
{

    public static void main(String[] args)
    {
        a.Foo aFoo = new a.Foo();
        b.Foo bFoo = new b.Foo();
    }
}

または、同じ名前のクラスを持つ 2 つのパッケージがある場合は、それらのインポートを単純にスキップできますが、完全修飾名 (FQN) で使用します。

クラスに がない場合はpackage ...;、次のようにインポートするだけです。

import Foo;

ただし、同一の FQN を持つクラスを含む (異なるライブラリからの) 2 つのパッケージがある場合、クラスパスの最初のパッケージが選択されます。

パッケージの命名規則は小文字を使用し、クラスの命名規則であることを覚えておいてください。名前は、クラス名の各単語を大文字で始める必要があります。

于 2013-02-26T14:33:28.480 に答える
0

はい、パッケージ構文を使用する必要があります。

  • フォルダ内のすべてのクラスをインポートしますA

    import com.pack.A.*;
    
  • フォルダ内の特定のクラスをインポートしますA

    import com.pack.ClassName;
    
于 2013-02-26T14:34:47.080 に答える
0

はい、パッケージをインポートするだけで可能です

構文

import pck.ClassA or import pck.* 
于 2013-02-26T14:35:16.363 に答える
0

はい、可能です。

次のものがある場合:

パッケージ: パックA

クラス:クラスA

行う:

PackA.ClassA をインポートします。//クラスをインポート

また

PackA.* をインポートします。// パッケージ内のすべてのクラスをインポートします

于 2013-02-26T14:31:36.843 に答える