Подтвердить что ты не робот

Включить один Java файл в другой файл java

Как включить один java файл в другой файл java?

Например: Если у меня есть два java файла, один называется Person.java, а один - Student.java. Как включить Person.java в Student.java, чтобы я мог расширить класс из Person.java в Student.java

4b9b3361

Ответ 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 вы используете?