Import de Class

Résolu/Fermé
NinoFares Messages postés 35 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 26 août 2017 - 17 mai 2016 à 20:25
NinoFares Messages postés 35 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 26 août 2017 - 17 mai 2016 à 23:47
Bonjour/Bonsoir,

Apres avoir créer une class et l'avoir mis dans un fichier et créer un Main qui manipule cette class dans un autre fichier ! comment pourrai-je l'importer ? je suis débutant je sais pas comment sa fonctionne mais se que j'ai compris il faut mettre toute les class dans un package ? Merci de bien répondre.

Cordialement.

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 mai 2016 à 20:42
Bonjour,

Si tes deux classes sont dans le même package (par exemple le package par défaut, c'est à dire sans package) tu n'as pas besoin de faire d'import.

Par contre il faut que tes deux classes (les fichiers .class, pas les .java) soient dans le même dossier (au package près) pour pouvoir être vues l'une par l'autre, ou alors paramétrer le classpath.

Pour t'aider plus spécifiquement est-ce que tu pourrais nous indiquer les dossiers où tu as tes fichiers actuellement et le début du code de chaque classe : jusqu'à
public class MaClasse {
1
NinoFares Messages postés 35 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 26 août 2017
17 mai 2016 à 21:27
Re,

Merci pour ta réponse, comment je peux configurer le classpath ? et c'est a quel niveau ?

pour la class alors c'est :
C:/users/pc/desktop/Programmes java/Class/MaClass.java
C:/users/pc/desktop/Programmes java/Class/MaClass.class

et pour le main c'est :
C:/users/pc/desktop/Programmes java/Main/Test.java
C:/users/pc/desktop/Programmes java/Main/Test.class

mais d'apres se que j'ai compris par votre message le Test.class et le MaClass.class doivent entre dans le même package ? (Petite question toute discrète : Package sa veux bien dire dossier c'est sa ? pour être spure)
0
NinoFares Messages postés 35 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 26 août 2017
17 mai 2016 à 21:28
Pour le début de code je n'ai rien fais puisque je ne sais pas quoi faire dans le import
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 mai 2016 à 22:45
Petite question toute discrète : Package sa veux bien dire dossier c'est sa ? pour être spure
Dans l'idée, il y a de ça, mais pas seulement.

En fait Java organise ses classes avec des noms de package, ce qui permet d'utiliser plusieurs fois le même noms de classes du moment qu'ils sont dans des packages différents.

Tu as par exemple "java.util.Scanner" que tu as peut-être déjà utilisé, Scanner c'est le nom de la classe, et "java.util" c'est son nom de package. Pour utiliser une telle classe il faut faire un import, par exemple
import java.util.Scanner;


Et pour que cela fonctionne, Java impose que les packages soient des dossiers.
Pour reprendre l'exemple de Scanner, ça veut dire que quelque part (en l’occurrence ce sera dans le dossier d'installation de Java), tu as un dossier "java" avec un sous-dossier "util" dans lequel tu as un fichier "Scanner.class"

Dans ton cas, je te proposes de faire ceci :

C:/users/pc/desktop/Programmes java/Class/MaClass.java

package Class;

public class MaClass {
}

C:/users/pc/desktop/Programmes java/Main/Test.java

package Main;

import Class.MaClass;

public class Test{
}

Ensuite, tu peux faire :
C:/users/pc/desktop/Programmes java> javac Main/Test.java
C:/users/pc/desktop/Programmes java> java Main.Test
0
NinoFares Messages postés 35 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 26 août 2017 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
17 mai 2016 à 23:05
Merci encore une pour ta réponse très bien expliqué, mais juste une question : Le package il est où en fait ? si j'ai bien compris quand je met package Class; dans mon début de programme sa crée un package Class dans le fichier source de java c'est bien sa ?
0
NinoFares Messages postés 35 Date d'inscription samedi 29 décembre 2012 Statut Membre Dernière intervention 26 août 2017
17 mai 2016 à 23:12
Je croie que je viens de comprendre, la différence c'est dans la compliation de mon programme c'est sa ? au lieu de mettre C:/users/pc/desktop/Programmes java/Main> javac Main.java ! Je doit faire plutôt se que vous m'avez proposé car dans main.java il y a l'import Class.MaClass; C'est bien sa ?
donc en faite on peut pas importer un package avec un chemin quelconque il doit être dans le même fichier c'est bien sa ?
0