Comment comprendre les états java

La plupart des résumés de syntaxe liste les détails de chaque type de déclaration en utilisant formels, les descriptions ésotériques. Toutefois, ces exemples de chaque type de déclaration donnent une brève description informelle de l'objectif de le type de déclaration. Cette description de la syntaxe Java est loin d'être complète, mais vous devriez trouver qu'il soit lisible et utile.

Une classe Java:

classe PreIncrementDemo {}
Qu'est-ce que cela signifie: "Le truc entre les accolades appartient à une classe nommée PreIncrementDemo. Cette classe est un modèle pour la création d'objets (instances de la PreIncrementDemo classe). "

déclarations d'importation:

import-import de java.util.Scanner java.lang.System.out- statique
Ce qu'ils veulent dire: «Quand je utiliser le nom Scanner ailleurs dans le présent .café fichier, le prendre à une abréviation java.util.Scanner. Autrement dit, prendre le nom Scanner pour représenter la Scanner classe qui est dans le java.util package.
"Quand je utiliser le nom ailleurs dans ce fichier .java, le prendre à une abréviation java.lang.System.out. Autrement dit, prendre le nom dehors pour représenter la statique dehors domaine qui est dans le Système classe qui, à son tour, se trouve dans la java.lang package. "

Les déclarations de variables:

int numberOfBunnies = 27 JFrame myFrame-
"Le nom numberOfBunnies un magasin int valeur (valeur en nombre entier, tels que 42, 0, -289) et la valeur de départ de numberOfBunnies 27. Le nom est myFrame se référer à un objet créé à partir de la JFrame classe. (C'est, myFrame se référer à un exemple du JFrame classe. La JFrame classe est pré-déclaré dans un package nommé javax.swing.) "

Déclarations d'affectation:

amountInAccount = 50.22-amountInAccount * = 1,05 amountInAccount = amountInAccount + 1000000.00-
"Pour la variable amountInAccount affecter la valeur 50.22. Ensuite, il faut multiplier la valeur de amountInAccount par 1,05. Puis ajouter 1000000.00 à la valeur de amountInAccount."

Une déclaration de méthode:

int incrementBy (montant int) {}
«Je suis introduction (qui est" déclarant ") une méthode nommée incrementBy. La incrementBy méthode prend, comme son entrée (il est «paramètre») un int valeur. Dans le corps de la méthode (qui est, entre les accolades) que la valeur de paramètre est connu sous le nom quantité variable. Exécution de la incrementBy méthode renvoie une valeur (éventuellement différent), également de type int."

Appels de méthode:

n = incrementBy (6) -System.out.println (incrementBy (10)) -
"Appeler le incrementBy Procédé (qui est, d'exécuter les instructions dans le corps de la incrementBy méthode) donnant le paramètre de la méthode de la valeur 6. Prendre la valeur retournée par l'appel à incrementBy, et affecter cette valeur renvoyée à la variable n.
"En outre, appeler le incrementBy méthode donnant le paramètre de la méthode de la valeur 10. Ensuite, prendre la valeur retournée par l'appel à incrementBy, et les aliments que valeur renvoyée à une autre méthode - Java de pré-déclarée System.out.println Procédé ».

Une méthode principale:

static void main (String args []) {} publics
"Commencer l'exécution du programme Java en exécutant les instructions dans le corps de la méthode nommée principal."

Un appel du constructeur:

JFrame myFrame = new JFrame ("Ceci est mon corps!") -
"Créer un nouvel objet en utilisant la définition de la JFrame classe. (UN JFrame est ce que vous auriez normalement appeler une «fenêtre».) Dans la barre de titre du nouvel objet, afficher les mots Ceci est mon corps! Laissez la variable myFrame reportez-vous au nouvel objet (la nouvelle instance de la JFrame classe). "

Une déclaration si:

si (== inputNumber randomNumber) {} else {}
"Si le inputNumber est égale à la randomNumber, puis exécuter un tas de déclarations (les instructions à l'intérieur de la première paire d'accolades). Mais, si la inputNumber ne correspond pas au randomNumber, exécuter un tas de différents états (les instructions à l'intérieur de la seconde paire d'accolades - les déclarations après le mot autre). "

Une instruction switch:

interrupteur (verset) {case 1: briser cas 2: briser cas 3: briser par défaut: percée}
"Si la valeur de verset est 1, exécuter les instructions après Cas 1: puis pause à l'extérieur de l'ensemble interrupteur déclaration. Si la valeur de verset est 2, exécuter les instructions après Cas 2: puis pause à l'extérieur de l'ensemble interrupteur déclaration. Blah blah-blah-pour verset étant égal à 3. Si, pour une raison quelconque, la valeur du verset est pas une des valeurs 1, 2 ou 3, exécuter les instructions après par défaut: puis pause à l'extérieur de l'ensemble interrupteur déclaration. "

Une déclaration de tout:




while (inputNumber! = randomNumber) {}
"Vérifiez pour voir si le inputNumber est égal au pas randomNumber. Si oui (qui est, si les deux nombres ne sont pas égaux), puis exécutez les instructions entre les accolades. Après l'exécution des instructions entre les accolades, puis répétez le tout. (Vérifiez pour voir si les chiffres ne sont pas égaux, et ainsi de suite). Si, lors d'une des répétitions, vous trouvez que inputNumber! = randomNumber est pas vrai (qui est, vous trouvez que le inputNumber est égale à la randomNumber) Puis cesser de répéter des choses et de passer à exécuter toute autre déclaration vient immédiatement après cette tandis que déclaration dans votre code. "

Une instruction for:

pour (int count = 1- comptage lt; = 10 comptage ++) {}
"Commencez avec 1 pour la valeur de compter. Assurez-vous que compter est inférieur à 10. (Bien entendu, dans cet exemple, compter qui commence étant inférieure à 10.) A cause compter est inférieur à 10, exécutez les instructions entre accolades. Lorsque vous avez fini d'exécuter les instructions entre accolades, procédez compter ++ entreprise (qui est, ajouter 1 à la valeur de compter).
«Revenez en arrière et vérifier pour voir si compter est encore inférieur à 10. (Oui, dans cet exemple, compter est maintenant 2.) Comme compter est inférieur à 10, exécutez les instructions à l'intérieur des accolades, puis ajouter 1 à la valeur de compter.
"Si, au début d'une répétition, vous trouvez que compter lt; = 10 est pas vrai, puis arrêter de répéter des choses et de passer à exécuter toute autre déclaration vient immédiatement après cette pour déclaration dans votre code. "

Un do ... while:

do {} while (réponse! = 'y' répondre = 'n')! -
«Au début, ne cochez rien. Commencez en exécutant les instructions entre les accolades, puis de vérifier si répondre est pas égal à 'y' et répondre est pas égal à 'n'. (Autrement dit, vérifier pour voir si répondre est ni 'y' ni 'n'.) Si répondre est ni 'y' ni 'n', puis répétez le tout. (Exécutez les instructions entre les accolades, puis vérifier à nouveau.) Si, à la fin de l'une des répétitions, vous trouvez que le répondre est soit 'y' ou 'n', puis arrêter de répéter et exécuter l'instruction immédiatement après cette do # 133-tout déclaration. "

Une déclaration d'énumération:

énumération Chambre {salle de bal, cuisine, salle à manger, salon, hall, bureau, bibliothèque, billiardRoom, véranda -Salle} = Room.study- sceneOfTheCrime
"Toute variable qui est déclarée être de type Chambre va stocker l'une des valeurs suivantes: Room.ballroom, Room.kitchen, Room.diningRoom, Room.lounge, et ainsi de suite. Dans cet exemple, la variable scène de crime est déclarée comme étant de type Chambre. La variable scène de crime commence à stocker la valeur Room.study."

Une déclaration améliorée pour:

pour (Chambre myroom: Room.values ​​()) {}
"Exécutez les instructions à l'intérieur du Accolades plusieurs fois - une fois pour chacun des Chambre les valeurs ENUM. Exécutez les instructions une fois avec ma chambre égal à Room.ballroom. Puis exécuter les instructions de nouveau avec ma chambre égal à Room.kitchen. Et ainsi de suite."

Extension d'une classe existante:

classe FullTimeEmployee étend employés {}
"UN FullTimeEmployee est un Employé avec certains Caractéristiques- supplémentaire à savoir, les caractéristiques décrites entre les accolades. "
Dans cet exemple, FullTimeEmployee est un sous-classe (alias. classe enfant) du Employé classe, et la Employé classe est une superclasse (alias. classe parente) du FullTimeEmployee classe.

Une clause throws:

vide doStuff () throws IOException {Scanner diskScanner = new Scanner (new File ("EmployeeInfo.txt")) -
«L'exécution de certain code à l'intérieur du faire des choses méthode pourrait lancer une IOException."
Lorsque vous essayez de créer une nouvelle instance de la Fichier classe, les choses peuvent aller mal. Java insiste pour que vous reconnaissez la calamité possible en annonçant que votre méthode peut / peuvent jeter un IOException. Chaque fois que vous exécutez le code qui peut jeter un IOException, vous devez reconnaître l'exception dans votre code. Une exception qui doit être reconnu (comme IOException) Est appelé un exception vérifiée.

Constructeurs:

Température classe {private nombre double-privé ScaleName échelle publique Température () {numéro = 0.0 échelle = ScaleName.fahrenheit-} de Température publique (numéro double, échelle de ScaleName) {this.number = nombre-this.scale = Scale-}
"Vous pouvez créer un Température objet (une instance de la Température classe) en appelant nouvelle température () avec rien entre les parenthèses. Vous pouvez également créer un Température objet en appelant nouvelle Température (70,0, ScaleName.fahrenheit), ou nouvelle Température (0.0, ScaleName.celsius), ou avec un autre numéro et un autre nom d'échelle.
Une déclaration du constructeur ressemble à une déclaration de méthode, mais le nom d'un constructeur est le même que le nom de la classe correspondante, et une déclaration du constructeur n'a pas de type de retour (même pas vide).

Appel du constructeur une superclasse:

classe TemperatureNice étend Température {TemperatureNice publique () {super () -} TemperatureNice publique (numéro deux) {super (nombre) -}
"Chaque fois que le programme exécute nouvelle TemperatureNice () (appel de la parameterless TemperatureNice constructeur), que l'appel de programme super (). Dans cet exemple, l'appel super () signifie appelant nouvelle température () (appel de la parameterless Température constructeur.)
"Chaque fois que le programme exécute nouvelle TemperatureNice (70,0) (appeler un à un paramètre TemperatureNice constructeur), que l'appel de programme super (70,0). Dans cet exemple, l'appel super (70,0) signifie appelant new Température (70,0) (appeler un à un paramètre Température constructeur.) "

Utilisation de tableaux (partie 1):

invités int [] = new int [10] -
"Créer une variable nommée invités. La variable invités se référer à un tableau de int des valeurs. Faites de la place pour un tableau de dix int des valeurs. Laisser invités reportez-vous à ce que l'espace d'ensemble. "

Utilisation de tableaux (partie 2):

for (int roomNum = 0- roomNum lt; 10- roomNum ++) {invités [roomNum] = 0-}
"Store 0 dans chacune des dix invité emplacements de tableau. "

Utilisation de tableaux (partie 3):

capacités int [] = {4, 4, 2, 4, 2, 2, 4, 2, 0, 2} -
"Créer une variable nommée capacits. La variable capacits se référer à un tableau de int des valeurs. Faites de la place pour un tableau de int des valeurs. Stocker les numéros 4, 4, 2 (et ainsi de suite) dans les emplacements de tableau. Laisser capacits reportez-vous à ce que l'espace d'ensemble. "

Utilisation de tableaux (partie 4):

Chambre chambres [] = new Chambre [10] -
"Créer une variable nommée chambres. Les chambres de variables se réfèrent à un ensemble de Chambres. Faites de la place pour un tableau de Chambres. Laisser chambres reportez-vous à ce que l'espace d'ensemble. "

Utilisation de tableaux (partie 5):

for (int roomNum = 0- roomNum lt; 10- roomNum ++) {chambres [roomNum] = new Chambre () -}
«Faites de la place pour les dix Chambre objets. Ajouter chaque élément de la chambres tableau se réfèrent à l'un de ceux Chambre objets ".

Utilisation de médicaments génériques:

ArrayList personnes = new ArrayList() -
"Créer une variable nommée gens. La variable gens se référer à un ensemble de Cordes (autrement dit, un ArrayList de Cordes). Faites de la place pour un ArrayList de Cordes. Laisser gens se référer à ce ArrayList."

Une déclaration try ... catch:

try {} catch (NumberFormatException e) {}} finally {
"Tentative d'exécuter les instructions à l'intérieur de la première paire d'accolades. Si rien ne se passe mal (qui est, si l'exécution ne jette pas des exceptions), puis contourner le capture clause (les instructions à l'intérieur de la seconde paire d'accolades).
"Mais si quelque chose va mal (qui est, si l'exécution lève une exception) puis sautez immédiatement de la déclaration de la délinquance à la capture clause. Croisez les doigts et espérons que la déclaration incriminée a jeté un NumberFormatException. Si oui, alors exécuter les instructions à l'intérieur du capture clause, et puis passer à exécuter les instructions qui viennent après la capture clause.
"Hélas, si la déclaration incriminée a jeté une exception qui est pas un NumberFormatException, puis retourner prématurément de la méthode que vous êtes en train d'exécution (la méthode contenant cette essayez # 133 prises accessoires déclaration). Retourner à ce que cette méthode appelée méthode actuelle, et nous espérons que la méthode d'appel peut traiter judicieusement à l'exception méchant.
"D'une façon ou une autre (exception ou pas exception, de retour prématuré ou non), exécuter les instructions à l'intérieur du Enfin clause (le troisième jeu d'accolades). "

Utilisation des modificateurs d'accès (Part 1):

com.allmycode.utilities public paquet première classe {} {} deuxième classe
"Le code de ce fichier appartient à un package nommé com.allmycode.utilities. La classe Premier est disponible pour tout le code Java. La classe Deuxième est disponible à du code Java uniquement si ce code est également en com.allmycode.utilities package. "

Utilisation des modificateurs d'accès (Part 2):

paquet com.allmycode.utilities classe troisième {amountInAccount publique = 50.22-int numOfThings = 22-private int trucs = 10 protégée int x = 40-
"Le code de ce fichier appartient à un package nommé com.allmycode.utilities. La variable amountInAccount est disponible pour tout le code Java. (Tout code Java peut faire référence au nom amountInAccount.) La variable numOfThings est disponible à du code Java uniquement si ce code est également en com.allmycode.utilities package. La variable truc ne sont pas disponibles au code externe de la Troisième classe. La variable X est disponible à du code Java uniquement si ce code est soit dans la com.allmycode.utilities paquet ou ce code est dans une sous-classe de la Troisième classe. "

La mise en œuvre d'une interface:

GameFrame de classe étend JFrameimplements ActionListener, ItemListener {}
"Je (la GameFrame programmeur) accepte de fournir aux organismes (implémentations) pour toutes les méthodes sans corps déclarées dans le ActionListener et ItemListener les interfaces ".

Une expression lambda:

(client) -> customer.name.equals ("Burd")
«Retour vrai si le nom du client est "Burd"- retour faux autrement. "
. customerList.stream () filtrer ((client) -> customer.name.equals ("Burd"))
"Prenez les objets dans le customerList. En utilisant le courant Procédé, envoyer ces objets, un par un, à une filtre Procédé. La filtre méthode applique l'expression lambda à chaque objet, obtenir vrai pour les clients dont le nom est "Burd", et faux pour tous les autres clients. En conséquence, la filtre méthode envoie tous et seuls les clients dont le nom est "Burd" à quelque méthode vient suivante dans la ligne d'assemblage ".

Une référence de la méthode:

Client :: isBurd
"Exécutez les instructions dans le corps de la Client La classe de isBurd Procédé ».
la classe Customer. {isBurd booléen Chaîne Nom-publique () {name.equals de retour ("Burd") -} // Plus Code va ici} customerList.stream () filtre (clientèle :: isBurd)
"Prenez les objets dans le customerList. En utilisant le courant Procédé, envoyer ces objets, un par un, à une filtre Procédé. La filtre Procédé applique le Client La classe de isBurd méthode pour chaque objet, obtenir vrai pour les clients dont le nom est "Burd", et faux pour tous les autres clients. En conséquence, la filtre méthode envoie tous et seuls les clients dont le nom est "Burd" à quelque méthode vient suivante dans la ligne d'assemblage ".

» » » » Comment comprendre les états java