あるJavaファイルを別のJavaファイルに含めるにはどうすればよいですか?
たとえば、2つのJavaファイルがある場合、1つはPerson.Java
と呼ばれ、もう1つはStudent.Java
と呼ばれます。 Person.Java
にStudent.Java
を含めると、Person.Java
のStudent.Java
からクラスを拡張できます。
2つのファイルを同じディレクトリに置くだけです。以下に例を示します。
Person.Java
public class Person {
public String name;
public Person(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
Student.Java
public class Student extends Person {
public String somethingnew;
public Student(String name) {
super(name);
somethingnew = "surprise!";
}
public String toString() {
return super.toString() + "\t" + somethingnew;
}
public static void main(String[] args) {
Person you = new Person("foo");
Student me = new Student("boo");
System.out.println("Your name is " + you);
System.out.println("My name is " + me);
}
}
生徒を実行すると(メイン機能があるため)、望ましい結果が得られます。
Your name is foo
My name is boo surprise!
すべての説明から欠落しているのは、Javaがクラス名=ファイル名という厳密な規則を持っているという事実です。クラス「Person」がある場合の意味は、「Person.Java」という名前のファイルにある必要があります。したがって、あるクラスが「Person」にアクセスしようとしても、「Person.Java」でなければならないため、ファイル名は必要ありません。
C/C++については、まったく同じ問題があります。答えは、(クラス名に一致する新しいファイルに)新しいクラスを作成し、パブリック文字列を作成することです。これが「ヘッダー」ファイルになります。次に、「extends」キーワードを使用してメインファイルで使用します。
あなたの答えは次のとおりです。
Include.Javaというファイルを作成します。このファイルに、これを追加します:
public class Include {
public static String MyLongString= "abcdef";
}
別のファイル、たとえばUser.Javaを作成します。このファイルに、次を入力します。
import Java.io.*;
public class User extends Include {
System.out.println(Include.MyLongString);
}
JavaにはCの方法が含まれていません。代わりに、JavaはJavaクラスを含むリソースのリストであるクラスパスと呼ばれる概念を使用します。 JVMはクラスパス上の任意のクラスに名前でアクセスできるため、クラスを拡張し、単に宣言するだけで型を参照できる場合。 includeステートメントJavaに近いものは 'import'です。クラスはfoo.bar.Bazのような名前空間に分割されるため、quxパッケージを使用していて、foo.bar.Bazのフルネームを使用せずにBazクラスを使用する場合は、 Javaファイルの先頭にあるimportステートメントは次のようになります:import foo.bar.Baz
あなたはしません。
Person with Studentを拡張する場合は、次の操作を行います。
public class Student extends Person
{
}
そして、両方のクラスをコンパイルするときに、一方が他方を見つけることができることを確認してください。
何IDEを使用していますか?