3

Eclipseでは、.javaファイル名はクラス名と同じである必要があります。いずれにせよ、それはEclipseだけに当てはまりますか?mainメソッドの場合、Cのmain関数のように見えますが、問題は、両方に独自のmainメソッドを持つ2つのクラスがあり、それらをリンクできる場合はどうなるかということです。さらに、1つの.javaファイルに2つのクラスを書き込むことはできますか?WindowsでEclipseを使用していますが、Linuxバージョンと同じですか?

パッケージの場合、私の本には、パッケージは一種のディレクトリであると書かれています。したがって、ファイルが属するパッケージを指定するには、「packagemy_pack」とだけ言う必要がありますか?/ src / my_packのようなディレクトリを作成し、その中に.javaファイルを配置する必要がありますか?

第三に、名前空間とは何ですか?パッケージやクラスとの関係は何ですか?

4

3 に答える 3

11

Eclipseでは、.javaファイル名はクラス名と同じである必要があります。いずれにせよ、それはEclipseだけに当てはまりますか?

javaファイルは、を含むパブリッククラスと同じ名前である必要があります。

mainメソッドの場合、Cのmain関数のように見えますが、問題は、両方に独自のmainメソッドを持つ2つのクラスがあり、それらをリンクできる場合はどうなるかということです。

はい、同じプロジェクトにメソッドを持つ2つのクラスstatic void main(String[] args) {...}を含めることができますが、プロジェクトのメインクラスは1つだけであり、マニフェストファイルで宣言してどちらにするかを決定する必要があります。

これについてもっと読む:

さらに、1つの.javaファイルに2つのクラスを書き込むことはできますか?

はい、できます。ただし、ファイル内に1つのクラスがあり、そのクラスの名前がファイルの名前と同じである場合に限ります。

TheClass.javaファイル

package edu.home.bean;

public class TheClass {
    class SomeClass {
    }
}

class AnotherClass {
}

編集:

クラスへのパブリックアクセスを定義しない場合、宣言されている場所に応じて、クラスが持つdefaultか、アクセスする可能性があります。private上記の例でSomeClassは、にアクセス権があり、privateによってのみアクセスできますが、同じパッケージ内の任意のクラスからアクセスできます。つまり、とは異なるパッケージ内のクラスはアクセスできません。TheClassAnotherClassedu.home.beanAnotherClass

package edu.home.control;

public class ControlClass {
    //this line compiles fine
    private TheClass x;
    //compilation error, it can't access for being in a different package
    private AnotherClass y;
    //compilation error, it can't access because its scope works only in TheClass
    private SomeClass z;
}

WindowsでEclipseを使用していますが、Linuxバージョンと同じですか?

Javaの良いところは、コードがプラットフォームに依存しないことです(CやC ++とは異なります)。そのため、Java仮想マシン(JVM)がオペレーティングシステムにインストールされている限り、コードをWindowsからLinuxに、またはその逆に移植できます。 Javaプロジェクトを実行/開発したい。

パッケージの場合、私の本には、パッケージは一種のディレクトリであると書かれています。したがって、ファイルが属するパッケージを指定するには、「packagemy_pack」とだけ言う必要がありますか?

はい、その本は正しいです。MyFirstJavaProjectなどのJavaプロジェクトがある場合は、ソースフォルダーとそのフォルダー内のパッケージを設定します。パッケージは、ソースフォルダーのサブフォルダーになります。例:

Eclipseのプロジェクト構造:

+ MyFirstJavaProject
  + src
    + edu.home.bean
    + edu.home.control
    + edu.home.gui
    + another.package


+ MyFirstJavaProject
  + src
    + edu
      + home
        + bean
          ... class files
        + control
          ... class files
        + gui
          ... class files
    + another
      + package

/ src / my_packのようなディレクトリを作成し、その中に.javaファイルを配置する必要がありますか?

手動で行うことも、IDE(この場合はEclipse)にパッケージ内にパッケージやクラスを作成するのと同じくらい簡単に行わせることもできます。

第三に、名前空間とは何ですか?パッケージやクラスとの関係は何ですか?

Javaは名前空間では機能しません。代わりに、パッケージを使用してクラスの管理/関係を容易にします。別のパッケージからクラスをインポートするか(第1の形式)、完全なパッケージ名のクラスを使用することができます(第2の形式)。

最初の形式の例:

package package1;

public class Package1Class {
}

package package2;

import package1.Package1Class;

public class Package2Class {
    private Package1Class x;

    public Package2Class (Package1Class x) {
        this.x = x
    }
}

2番目の形式の例:

package package1;

public class Package1Class {
}

package package2;

public class Package2Class {
    //look that there is not use of the import statement, however everytime you need
    //to call Package1Class, you should provide the full package name
    private package1.Package1Class x;

    public Package2Class (package1.Package1Class x) {
        this.x = x
    }
}
于 2012-06-06T02:16:22.070 に答える
1

1)Javaのものです。ファイル名は、ファイル内のパブリッククラスと一致する必要があります。パブリッククラスがない場合は、ほとんど何にでも名前を付けることができます。mainメソッドを持つクラスが2つある場合、一方が他方を呼び出すことができます。それらはCのようにリンクされています。互いにコンパイルされただけです。同じファイルに2つのクラスを含めることができます。公開できるのは1つだけです。Eclipseはオペレーティングシステム間で非常に似ています。OSの違いを説明するためにいくつかの違いがあります。

2)my_packは適切な命名規則に従っていません。my.packまたはcom.myの方が適切な名前です。しかし、はい、あなたはそのディレクトリを作成したいと思います。

3)Javaは名前空間という用語を使用しませんが、ウィキペディアによると、パッケージは名前空間のようなものです。

于 2012-06-06T02:10:49.607 に答える
0

Javaでは、IDEに関係なく、パブリッククラス名を.javaファイル名と同じにするという規則があります。

.javaファイルには、パブリッククラスと同じ名前のクラスが1つだけあれば、複数のクラスが存在する可能性があります。

于 2015-07-01T19:21:52.617 に答える