JShell একটি কমান্ড-লাইন টুল জাভা 9-এ চালু করা হয়েছে , এবং এটি জাভার প্রথম অফিসিয়াল REPL একটি সহজ প্রোগ্রামিং পরিবেশ তৈরি করার টুল যা ব্যবহারকারীর ইনপুট পড়ে, মূল্যায়ন করে এবং ফলাফল প্রিন্ট করে।
ঘোষণাগুলি একটি ক্লাসের বাইরে ৷ অথবা ইন্টারফেস (এবং নিজেদের দ্বারা ক্লাস এবং ইন্টারফেসের ঘোষণা) নিম্নলিখিত নিয়মের অধীনে তৈরি করা হয়েছে।
বাহ্যিক ঘোষণার নিয়ম:
1) অ্যাক্সেস মডিফায়ার যেমন সর্বজনীন, সুরক্ষিত , এবং ব্যক্তিগত উপেক্ষা করা যেতে পারে। সমস্ত ঘোষণার স্নিপেট অন্য সমস্ত স্নিপেটে অ্যাক্সেসযোগ্য হতে পারে।
jshell> private int i = 10; i ==> 10 jshell> System.out.println(i); 10
2) সংশোধক চূড়ান্ত উপেক্ষা করা যেতে পারে। পরিবর্তন এবং উত্তরাধিকার অনুমোদিত।
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) মডিফায়ার স্ট্যাটিক উপেক্ষা করা যেতে পারে কারণ একটি কন্টেইনার ক্লাস নেই।
jshell> static char letter = 'A; | Warning: | Modifier 'static' not permitted in top-level declarations, ignored | static char letter = 'A'; | ^----^ letter ==> 'A'
4)৷ পরিবর্তনকারীর ডিফল্ট এবং সিঙ্ক্রোনাইজড অনুমোদিত নয়৷
jshell> synchronized void method() {} | Error: | Modifier 'synchronized' not permitted in top-level declarations | synchronized void method() {} | ^----------^
5) T তিনি সংশোধক বিমূর্ত শুধুমাত্র ক্লাসে অনুমোদিত৷
৷jshell> abstract void method(); | Error: | Modifier 'abstract' not permitted in top-level declarations | abstract void method(); | ^------^