JShell जावा 9 में पेश किया गया एक कमांड-लाइन टूल है, और यह जावा का पहला आधिकारिक REPL टूल है जो एक सरल प्रोग्रामिंग वातावरण बनाता है जो उपयोगकर्ता के इनपुट को पढ़ता है, उसका मूल्यांकन करता है, और परिणाम प्रिंट करता है।
एक क्लास या इंटरफेस के बाहर की घोषणाएं (और स्वयं कक्षाओं और इंटरफेस की घोषणाएं) निम्नलिखित नियमों के तहत बनाई गई हैं।
बाहरी घोषणाओं के नियम:
1) public, protected, और private जैसे एक्सेस मॉडिफायर को नजरअंदाज किया जा सकता है। सभी घोषणा स्निपेट्स अन्य सभी स्निपेट्स के लिए सुलभ हो सकते हैं।
jshell> private int i = 10; i ==> 10 jshell> System.out.println(i); 10
2) मॉडिफायर final को नजरअंदाज किया जा सकता है। परिवर्तन और विरासत की अनुमति है।
jshell> final class A {void m() {} } | Warning: | Modifier 'final' not permitted in top-level declarations, ignored | final class A {void m() {} } | ^---^ | created class A 3) मॉडिफायर static को नजरअंदाज किया जा सकता है क्योंकि कोई कंटेनर क्लास नहीं है।
jshell> static char letter = 'A; | Warning: | Modifier 'static' not permitted in top-level declarations, ignored | static char letter = 'A'; | ^----^ letter ==> 'A'
4) मॉडिफायर default और synchronized अनुमत नहीं हैं।
jshell> synchronized void method() {} | Error: | Modifier 'synchronized' not permitted in top-level declarations | synchronized void method() {} | ^----------^ 5) T मॉडिफायर abstract केवल कक्षाओं में अनुमत है।
jshell> abstract void method(); | Error: | Modifier 'abstract' not permitted in top-level declarations | abstract void method(); | ^------^