Включить один Java файл в другой файл java
Как включить один java файл в другой файл java?
Например:
Если у меня есть два java файла, один называется Person.java
, а один - Student.java
. Как включить Person.java
в Student.java
, чтобы я мог расширить класс из Person.java
в Student.java
Ответы
Ответ 1
Просто поместите два файла в один каталог. Вот пример:
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!
Ответ 2
Что не хватает во всех объяснениях, так это то, что Java имеет строгое правило имени класса = имя файла. Значение, если у вас есть класс "Человек", должно быть в файле с именем "Person.java". Поэтому, если один класс пытается получить доступ к "Лицу", имя файла необязательно, поскольку оно должно быть "Person.java".
Для 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);
}
Ответ 3
Java не использует, как это делает C. Вместо этого java использует концепцию, называемую classpath, список ресурсов, содержащих классы Java. JVM может получить доступ к любому классу в пути к классам по имени, поэтому, если вы можете расширять классы и ссылаться на типы, просто объявляя их. Завершает работу с оператором include. Java имеет "import". Поскольку классы разбиваются на пространства имен, такие как foo.bar.Baz, если вы находитесь в пакете qux и хотите использовать класс Baz, не используя полное имя foo.bar.Baz, тогда вам нужно использовать import в начале вашего java файла:
import foo.bar.Baz
Ответ 4
Нет.
Если вы хотите расширить Person with Student, просто выполните:
public class Student extends Person
{
}
И убедитесь, что при компиляции обоих классов можно найти другой.
Какую IDE вы используете?