IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Notions de base de Java


Sujet :

avec Java

  1. #1
    Membre habitué
    Homme Profil pro
    utilisateur
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : utilisateur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Par défaut Notions de base de Java
    Salut,

    J'ai une question pour mieux comprendre les notions de Java...

    Pourquoi la mention "class public" doit être contenu dans un fichier qui porte le même nom de cette classe ?

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    La réponse simple est "parce que".

    Cela fait partie des spécifications du langage Java (en fait de Oak, ça prédate la sortie officielle de Java)

    Citation Envoyé par http://www.javaspecialists.eu/archive/Issue055.html
    Why is each public class in a separate file? (Section 1)

    This is a question that I have frequently been asked during my courses. Up to now I have not had a good answer to this question. In section 1, we read: "Although each Oak compilation unit can contain multiple classes or interfaces, at most one class or interface per compilation unit can be public".

    In the sidebar it explains why: "This restriction is not yet enforced by the compiler, although it's necessary for efficient package importation"

    It's pretty obvious - like most things are once you know the design reasons - the compiler would have to make an additional pass through all the compilation units (.java files) to figure out what classes were where, and that would make the compilation even slower.
    Et la vraie raison, c'est parce qu'à l’époque, c’était plus rapide de compiler un programme ainsi. Pre-1995, avoir une compilation rapide c’était du luxe.

    Et ce qui en découle aussi : quoi qu'en disent les gens qui font du C++ ou du C#, c'est plus clair et mieux organisé ainsi.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. [Mapreduce] Notion de base et classe java
    Par Clarisse_rab dans le forum Big Data
    Réponses: 0
    Dernier message: 20/03/2015, 03h58
  2. Réponses: 1
    Dernier message: 18/12/2007, 18h43
  3. Notions de base Active directory
    Par Zelltemplar dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 26/03/2007, 15h07
  4. [POO Basique] Besoin de précision sur une notion de base
    Par alois.cochard dans le forum Langage
    Réponses: 8
    Dernier message: 15/09/2006, 09h01
  5. [Débutant] Questions de base sur java
    Par JajaY dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2006, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo