【发布时间】:2010-10-27 05:03:04
【问题描述】:
如何将一个 java 文件包含到另一个 java 文件中?
例如:
如果我有 2 个 java 文件,一个名为 Person.java,一个名为 Student.java。如何将Person.java 包含到Student.java 中,以便我可以从Person.java 中扩展Student.java 中的类
【问题讨论】:
如何将一个 java 文件包含到另一个 java 文件中?
例如:
如果我有 2 个 java 文件,一个名为 Person.java,一个名为 Student.java。如何将Person.java 包含到Student.java 中,以便我可以从Person.java 中扩展Student.java 中的类
【问题讨论】:
只需将两个文件放在同一个目录中即可。这是一个例子:
Person.java
public class Person {
public String name;
public Person(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
学生.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);
}
}
Running Student(因为它具有 main 功能)为我们提供了预期的结果:
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 使用了一个名为 classpath 的概念,一个包含 java 类的资源列表。 JVM 可以通过名称访问类路径上的任何类,因此如果您可以扩展类并简单地通过声明它们来引用类型。 java 包含语句的关闭是'import'。由于类被分解为像 foo.bar.Baz 这样的命名空间,如果你在 qux 包中并且你想使用 Baz 类而不必使用它的全名 foo.bar.Baz,那么你需要使用在您的 java 文件开头的 import 语句如下所示:
import foo.bar.Baz
【讨论】:
你没有。
如果你想用 Student 扩展 Person,只需:
public class Student extends Person
{
}
并确保在编译这两个类时,一个可以找到另一个。
您使用的是什么 IDE?
【讨论】: