JShell is een opdrachtregelshell voor het uitvoeren van Java-code. In een eerder artikel, "JShell gebruiken in Java 9 in NetBeans 9.0, deel 1", bespraken we het starten van JShell in NetBeans 9. We hebben enkele codefragmenten getest voor het importeren van klassen en het expliciet maken en gebruiken van variabelen. In dit vervolgartikel bespreken we het impliciet maken en gebruiken van variabelen, het uitvoeren van String-vergelijkingen en het uitvoeren van Java-statements. Dit artikel heeft de volgende secties:
- Variabelen declareren en gebruiken (vervolg)
- Tekenreeksvergelijking
- Uitspraken gebruiken
- De Java Shell resetten
- Conclusie
Variabelen declareren en gebruiken (vervolg)
In het eerste van twee artikelen hebben we gesproken over het expliciet declareren en gebruiken van variabelen. Vervolgens bespreken we het impliciet declareren en gebruiken van variabelen.
Impliciet een variabele maken
Het impliciet maken van een variabele en het opslaan ervan in een JShell-sessie is een unieke functie van JShell, omdat een Java-broncodebestand geen ondersteuning biedt voor het specificeren van expressies die impliciet als variabelen worden opgeslagen. Voeg als voorbeeld het volgende codefragment toe, dat alleen het cijfer 1 is.
1
Een variabele wordt impliciet gemaakt, zoals weergegeven in figuur 1. Standaard heeft een impliciet gemaakte variabele de naam $x , waarin x is de variabele identifier. 1 toevoegen maakt de variabele $1 , zoals weergegeven in figuur 1, maar de variabele-ID is tot op zekere hoogte willekeurig omdat de eerste keuze mogelijk al door een andere variabele wordt gebruikt.
Figuur 1: Impliciet een variabele maken
De nieuwe variabele $1 kan worden aangeroepen in JShell om de waarde uit te voeren, zoals weergegeven in Afbeelding 2.
Figuur 2: Impliciete variabele aanroepen
Elke expressie die een waarde oplevert, wordt opgeslagen in een variabele. Als u bijvoorbeeld twee getallen toevoegt, ontstaat er impliciet een variabele.
[5]-> 1+0 | $4 ==> 1
De impliciete variabele kan worden aangeroepen in JShell.
[6]-> $4 | $4 ==> 1
De impliciete variabele kan in een ander codefragment worden gebruikt. Voeg als voorbeeld de twee impliciete variabelen $1 . toe en $4 , en er wordt een derde impliciete variabele gemaakt.
[7]-> $1+$4 | $8 ==> 2
De uitvoer van de voorgaande commando's wordt getoond in figuur 3.
Figuur 3: Impliciete variabelen gebruiken
Klassenconstanten aanroepen, zoals Math.PI creëert ook een impliciete variabele, zoals weergegeven in figuur 4.
Figuur 4: Een impliciete variabele creëren door een klasseconstante aan te roepen
Een String letterlijk creëert ook een impliciete variabele (zie figuur 5). De gemaakte impliciete variabele kan in een ander codefragment worden gebruikt; als voorbeeld, in een System.out.println uitspraak. De impliciete variabele kan ook direct worden aangeroepen.
Figuur 5: Een impliciete variabele maken van een letterlijke tekenreeks
Versmalling en verbreding van primitieve conversies worden indien nodig uitgevoerd in JShell. Als voorbeeld, het toevoegen van een int met een decimaal getal voert een verbredende conversie uit en creëert een impliciete variabele met een decimaal getal, zoals weergegeven in afbeelding 6.
Figuur 6: Verbredende primitieve conversie uitvoeren
String aaneenschakeling creëert ook impliciete variabelen. Voeg bijvoorbeeld twee String . samen letterlijke.
"Hello"+" "+"JShell"
Er wordt een impliciete variabele gemaakt. Een van de String klassenmethoden, zoals length() en substring(int,int) , kan worden aangeroepen op de impliciet gemaakte variabele, zoals weergegeven in Afbeelding 7.
Figuur 7: Methoden aanroepen op een impliciete variabele
Variabelen van elk type kunnen in JShell worden gemaakt. Maak bijvoorbeeld variabelen van het type char , zweven , en dubbel naast de int typ.
[1]-> int a=1; | a ==> 1 [2]-> int b=5; | b ==> 5 [3]-> char c='a'; | c ==> 'a' [4]-> float f=1.0f; | f ==> 1.0 [5]-> double d=5.0d; | d ==> 5.0
Terwijl de /list commando geeft een overzicht van alle codefragmenten, de /vars commando in JShell geeft alleen de variabelen weer.
[6]-> /vars | int a = 1 | int b = 5 | char c = 'a' | float f = 1.0 | double d = 5.0
Eerder hadden we een uitdrukking besproken waarin een impliciete verbredende primitieve conversie wordt gemaakt in JShell. Versmallen en verbreden primitieve conversies worden ook in opdracht gemaakt. Wijs als voorbeeld van een beperkende primitieve conversie de variabele c . toe van het type char een int waarde.
[6]-> c=5;| c ==> '