Java import syntaxe de l'instruction
C'est une question simple, mais je suis vraiment ennuyé par elle. J'ai essayé de trouver un duplicata, et ai googlé, mais j'ai été encore plus surpris quand je ne pouvais pas trouver une réponse satisfaisante.
import java.util.Scanner;
Dans cette déclaration .Scanner
est la classe,
.util
est le nom du package
Qu'est-ce que java
ou javax
ou tout ce qui pourrait se tenir devant la première période en général?
Mise à JOUR:
J'ai aussi trouvé cette photo:
http://www.javatpoint.com/package
Est-il vrai?
java.util
est le nom du package.Java ou javax sont également parties du nom du package.
et toute la " java.util.Un Scanner " est un nom de classe entièrement qualifié 🙂
OriginalL'auteur user3081519 | 2013-12-25
Vous devez vous connecter pour publier un commentaire.
Par la JLS 7.1:
De sorte que vous pouvez glaner à partir de:
java
est un paquet avec pas de cours, seulement des sous-paquets.util
est un sous-paquetage dejava
dont le nom complet estjava.util
.util
ne désigne pas un paquet,java.util
."J'ai aussi trouvé cette image: ... Est-ce vrai?"
Oui,
util
est un sous-paquetage dejava
. Cependant,util
n'est pas un paquet.java.util
est un ensemble.Vous pouvez pense paquets comme une structure de répertoires, si vous le souhaitez, où chaque sous-paquetage est un dossier à l'intérieur de son emballage. Il y aurait donc un "dossier" java et, à l'intérieur, un autre "dossier" util. Un paquet est indiqué par son nom complet ("chemin d'accès"), de sorte
java
est un package etjava/util
est un ensemble./util
n'est pas un paquet. Mais les paquets représenté par une structure de répertoire n'est pas une spécification. C'est seulement une mise en œuvre commune. C'est le système hôte de décider comment les paquets sont stockés (JLS 7.2).Attention: Java n'est pas réellement avoir un paquet de hiérarchie. On dirait qu'il parce que vous définissez les paquets de sous-répertoires, pour
util
est "à l'intérieur"java
, maisjava
etjava.util
se comporter comme totalement indépendant des paquets.Oui, c'est vrai, il n'y a rien dans la spec, qui me dit que "le sous-paquetage" est à, toutes liées à son "contenant" des paquets. Par exemple, si
P
est un package etP.Q
est un paquet qui ne signifie pas certains de la classeP.Q.SomeClass
pouvez utiliser une autre classeP.AnotherClass
par son simple nom, sans un certificat d'importation ou d'accéder à ses colis-privé/protégé membres et vice-versa. Bien que, selon la spécificationQ
est un membre deP
.OriginalL'auteur Radiodef
Classes en Java sont identifiés par un nom complet consistant en une concaténation de l'ensemble de la classe et le nom de la classe (et de tout extérieur des classes, le cas échéant). En général, dans une instruction import comme:
tout, sauf le dernier point-virgules champ est le nom du package (
foo.bar.baz
) et le dernier champ est le nom de la classe (MyClass
). Dans votre exemple,java.util
est le nom du package etScanner
est le nom de la classe.Le processus est en réalité un peu plus compliqué, comme intérieure/nested classes et les interfaces peuvent être impliqués, mais vous obtenez l'idée.
Il est couramment mis en œuvre comme une structure de répertoire, mais selon l'JLS il n'a pas à être. C'est "jusqu'à le système hôte".
OriginalL'auteur Darkhogg
import java.util.Scanner
dit.Scanner s = new Scanner()
), puis la classe a trouvé par l'importation sera utilisé.Sinon vous ne pourriez pas faire de l'importation et de faire
java.util.Scanner s = new java.util.Scanner()
mais vous pouvez voir comment cela pourrait rapidement devenir difficile à gérer, surtout si vous l'utilisez dans beaucoup d'endroits à l'intérieur de votre fichier. Les importations sont juste un moyen pratique de réduire de façon répétée en spécifiant la version duScanner
classe que vous voulez dire quand vous vous référez àScanner
.Dans votre projet, elles sont imbriquées. Dans le système de dépôt, ils sont imbriqués. Dans le fichier JAR ils sont imbriqués...
Vous dites qu'ils ne sont pas imbriqués, je dis que si ils ne peuvent pas être définis comme imbriquée à toutes fins utiles, et pour faciliter la compréhension, ils ne le nid. Je suis pas au courant de quoi que ce soit officiellement en disant qu'ils ne sont pas bien que je suis disposé à croire qu'il existe et je ne sais pas si quelqu'un peut me montrer un lien 🙂
OriginalL'auteur Tim B
Quelques points:
java.util
, pasutil
. "java" n'est qu'une partie du nom du package.AbC123.XYZ.foo
est valide nom du packagejava
font partie du JDK (plus d'extensions). Il n'y a rien dans la langue, qui spécifie cette ou impose cetteOriginalL'auteur Bohemian
java
etutil
sont des noms d'imbrication des paquets.java.util
est un chemin d'accès à l'emballage final.Ils sont des répertoires à l'intérieur de
rt.jar
fichier.rt.jar
fichier est unzip
archive, vous pouvez le visualiser avec7-zip
programme.Scanner
est unScanner.class
fichier à l'intérieur dejava/util
répertoire à l'intérieurrt.jar
import java.util.Scanner
directive permet d'utiliserScanner
nom de la classe dans le code sans spécifier le chemin d'accès complet.import java.util.*
directive permet d'utiliser TOUS les noms de classe enjava.util
sans chemin d'accès.import static java.util.Scanner.*
directive permet d'utiliser TOUS les membres statiques à l'intérieur deScanner
, sans chemins. Mais il n'en existe aucune.Liste de tous les paquets dans les JRE sont ici: http://docs.oracle.com/javase/7/docs/api/overview-summary.html
OriginalL'auteur Suzan Cioc
1) java est un ensemble. (représente également un dossier dans le système de fichiers).
Il est directement dans le chemin de la classe, de sorte qu'il est référencé par votre programme comme "java". (sous-dossier dans le dossier java)
2) util est un paquet à l'intérieur de package java (d'où la référence de java.util').
3) le Scanner est une classe à l'intérieur util paquet (d'où " java.util.Un Scanner")
Vous pouvez avoir autant de imbriqués les paquets que vous voulez comme " mypackage1.mypackage2.mypackage3. ... "et ainsi de suite, aussi longtemps que mypackage1 est dans le classpath.
Espère que cette aide
OriginalL'auteur Tanmay Patil
l'instruction d'importation représentent une hiérarchie
java
est le paquetutil
est le sous-paquetage (à l'intérieur de java)Scanner
est la classe (à l'intérieur util)importer java.util.*;
Le nom de la classe pourrait être subtituited avec un astérisque,
et cela signifie que l'importation toutes les classes dans la sous-paquetage.
OriginalL'auteur Smartian