web-dev-qa-db-fra.com

Étendre une classe Java à partir d'un fichier dans un autre Java

Comment puis-je inclure un fichier Java dans un autre fichier Java?

Par exemple: Si j’ai 2 Java le fichier s’appelle Person.Java et on s'appelle Student.Java. Comment puis-je inclure Person.Java en Student.Java afin que je puisse étendre la classe de Person.Java dans Student.Java

57
Jin Yong

Il suffit de mettre les deux fichiers dans le même répertoire. Voici un exemple:

Person.Java

public class Person {
  public String name;

  public Person(String name) {
    this.name = name;
  }

  public String toString() {
    return name;
  }
}

Étudiant.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 (puisqu'il a la fonction principale) nous donne le résultat souhaité:

Your name is foo
My name is boo  surprise!
60
Chris Bunch

Ce qui manque dans toutes les explications est le fait que Java a une règle stricte de nom de la classe = nom du fichier. Cela signifie que si vous avez une classe "Personne", c'est obligatoirement être dans un fichier nommé "Person.Java". Par conséquent, si une classe tente d'accéder à "Person", le nom du fichier n'est pas nécessaire, car il doit s'agir de "Person.Java".

Venant pour C/C++, j'ai exactement le même problème. La solution consiste à créer une nouvelle classe (dans un nouveau fichier correspondant au nom de la classe) et à créer une chaîne publique. Ce sera votre fichier "en-tête". Puis utilisez-le dans votre fichier principal en utilisant le mot-clé "extend".

Voici votre réponse:

  1. Créez un fichier appelé Include.Java. Dans ce fichier, ajoutez ceci:

    public class Include {
        public static String MyLongString= "abcdef";
    }
    
  2. Créez un autre fichier, par exemple, User.Java. Dans ce fichier, mettez:

    import Java.io.*;
    
    public class User extends Include {
        System.out.println(Include.MyLongString);
    }
    
26
FractalSpace

Java n'utilise pas l'inclusion comme le fait C. Au lieu de cela, Java utilise un concept appelé le chemin d'accès aux classes, liste de ressources contenant les classes Java. La machine virtuelle Java peut accéder à n'importe quelle classe du chemin d'accès par nom. étendre les classes et se référer aux types simplement en les déclarant. La chose qui se ferme à une instruction include Java a est 'import'. Comme les classes sont divisées en espaces de noms comme foo.bar.Baz, si vous êtes dans le paquetage qux et que vous voulez utiliser la classe Baz sans avoir à utiliser son nom complet, foo.bar.Baz, vous devez utiliser une instruction import au début de votre Java = fichier comme ceci: import foo.bar.Baz

19
Jherico

Vous pas.

Si vous souhaitez prolonger Person with Student, procédez comme suit:

public class Student extends Person
{
}

Et assurez-vous que lorsque vous compilez les deux classes, l’une peut trouver l’autre.

Qu'est-ce que IDE utilisez-vous?

3
Pablo Santa Cruz