JShell হলো একটি কমান্ড-লাইন টুল যা জাভা ৯-এ পরিচয় করানো হয়েছে, এবং এটি জাভার প্রথম অফিসিয়াল REPL টুল যা একটি সিম্পল প্রোগ্রামিং এনভায়রনমেন্ট তৈরি করে যা ইউজারের ইনপুট পড়ে, ইভ্যালুয়েট করে, এবং ফলাফল প্রিন্ট করে।
ক্লাস বা ইন্টারফেস-এর বাইরে ডিক্লেরেশন (এবং ক্লাস ও ইন্টারফেসের ডিক্লেরেশন নিজেদের) নিচের নিয়মাবলী অনুযায়ী তৈরি হয়।
এক্সটার্নাল ডিক্লেরেশনের নিয়মাবলী:
১) অ্যাক্সেস মডিফায়ার যেমন public, protected, এবং private ইগনোর করা যায়। সব ডিক্লেরেশন স্নিপেট অন্যান্য স্নিপেটের কাছে অ্যাক্সেসযোগ্য।
jshell> private int i = 10; i ==> 10 jshell> System.out.println(i); 10
২) মডিফায়ার 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
৩) মডিফায়ার static ইগনোর করা যায় কারণ কন্টেইনার ক্লাস নেই।
jshell> static char letter = 'A'; | Warning: | Modifier 'static' not permitted in top-level declarations, ignored | static char letter = 'A'; | ^----^ letter ==> 'A'
৪) মডিফায়ার default এবং synchronized অনুমোদিত নয়।
jshell> synchronized void method() {}
| Error:
| Modifier 'synchronized' not permitted in top-level declarations
| synchronized void method() {}
| ^----------^
৫) মডিফায়ার abstract শুধু ক্লাসে অনুমোদিত।
jshell> abstract void method(); | Error: | Modifier 'abstract' not permitted in top-level declarations | abstract void method(); | ^------^