2015-08-09 1 views
0
public class constprac { 

    public static void main(String args[] ) 
    { 
     consttest class1=new consttest("ria"); 
     class1.showName(); 
    } 
} 


pourquoi si mon nom de fichier et le nom de classe publique diffère alors je reçois une erreur de compilation?

**public** class consttest{ 
    String gname; 
    public consttest(String name){`` 
     gname=name; 
    } 
    public String setName(){ 
     return gname; 
    } 
    public void showName(){ 
     System.out.println("YOUR 1ST GirlFriend IS "+ setName()); 
    } 
} 
+0

Bonjour et bienvenue sur StackOverflow. S'il vous plaît prenez le temps de lire la [page d'aide] (http://stackoverflow.com/help), en particulier les sections intitulées «Quels sujets puis-je poser à propos d'ici? et "Quels types de questions devrais-je éviter de poser?". Et plus important encore, veuillez lire la [liste de vérification des questions de dépassement de pile] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist). Vous pouvez également en savoir plus sur [Exemples minimaux, complets et vérifiables] (http://stackoverflow.com/help/mcve). – galath

+0

Voici comment Java l'a conçu. Voir http://stackoverflow.com/questions/1841847/can-i-compile-a-java-file-with-a-different-name-than-the-class http: //stackoverflow.com/questions/10442758/why-must-a-java-file-have-the-same-name-as-its-public-class –

+0

Voici comment Java l'a conçu. Voir liens ci-dessous http://stackoverflow.com/questions/10442758/why-must-a-java-file-have-the-same-name-as-its-public-class http: //stackoverflow.com/questions/1841847/can-i-compile-a-java-file-with-a-different-name-than-the-class –

Répondre

2

pourquoi, si mon nom de fichier et le nom de la classe publique diffère alors que je reçois erreur de compilation?

Parce que c'est comment Java est défini: Si vous avez une classe public, il doit être dans un fichier nommé d'après la classe publique.

Les détails peuvent être trouvés dans §7 of the JLS. C'est essentiellement dire que si le code source est stocké dans un système de fichiers, un certain nombre d'exigences sont imposées afin de faire fonctionner le système de paquets de manière cohérente.

+0

L'utilisateur connaît cette règle. Il demande la raison derrière cela. 'c'est comme ça que Java est défini' n'est pas une réponse. –

+3

@ sᴜʀᴇsʜᴀᴛᴛᴀ: Je ne vois aucune preuve de cela. –

+1

ce que vous avez dit est correct en cas de classe principale. Mais pourquoi une erreur de compilation se produit si je change le nom de la classe dans une autre sous-classe avec un spécificateur d'accès nommé pubilc? –