在另一个java文件中包含一个java文件
我怎样才能包括一个Java文件到另一个Java文件?
例如:如果我有2个Java文件,一个名为Person.java
,一个名为Student.java
。 如何将Person.java
包含到Student.java
以便在Student.java
中将Person.java
类扩展
把这两个文件放在同一个目录下。 这是一个例子:
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); } }
正在运行的学生(因为它具有主要function)给我们带来了期望的结果:
Your name is foo My name is boo surprise!
所有解释中缺less的是Java对类名=文件名有严格的规定。 这意味着如果您有一个“Person”类,则必须位于名为“Person.java”的文件中。 因此,如果一个类尝试访问“Person”,则文件名不是必需的,因为它必须是“Person.java”。
来C / C ++,我有完全相同的问题。 答案是创build一个新的类(在一个新的匹配类名的文件中)并创build一个公共string。 这将是你的“头文件”文件。 然后在主文件中使用“extends”关键字。
这是你的答案:
-
创build一个名为Include.java的文件。 在这个文件中,添加这个:
public class Include { public static String MyLongString= "abcdef"; }
-
创build另一个文件,比如User.java。 在这个文件中,把:
import java.io.*; public class User extends Include { System.out.println(Include.MyLongString); }
Java不使用包含C的方式。 相反,java使用了一个叫做classpath的概念,它是一个包含java类的资源列表。 JVM可以通过名称访问类path中的任何类,只要通过声明扩展类并引用types即可。 包含语句javaclosures的东西是'import'。 由于类分解为像foo.bar.Baz这样的命名空间,如果你在qux包中,并且你想使用Baz类而不必使用它的全名foo.bar.Baz,那么你需要使用导入语句在你的java文件的开始像这样: import foo.bar.Baz
你没有。
如果你想扩展人与学生,只要做:
public class Student extends Person { }
并且确保,当你编译两个类时,可以find另一个类。
你在用什么IDE?