在另一个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”关键字。

这是你的答案:

  1. 创build一个名为Include.java的文件。 在这个文件中,添加这个:

     public class Include { public static String MyLongString= "abcdef"; } 
  2. 创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?