The Цикъл за четене-оценка-печат или REPL е шел интерфейс. Този интерфейс чете и оценява всеки входен ред и след това отпечатва резултата. The Цикъл за четене-оценка-печат ни помага да взаимодействаме с времето за изпълнение на нашето приложение, присъстващо в определено състояние. Командите се четат и оценяват от REPL и отпечатайте резултата. След като отпечата резултата, REPL се връща към началото, за да прочете, оцени и отпечата следващия ни вход.
Използвайки REPL, можем лесно да пишем и тестваме нашия Java код, без да го компилираме и можем да видим изхода директно на конзолата.
Java вече няма REPL?
Определено REPL трябва да бъде на установен език като Java . Но не всички езици имат REPL и Java е един от тях. Разработчиците на Java го изискват най-много. Java има нещо като REPL за известно време като Java Beanshell. Но проектът не беше пълнофункционален REPL с други езици. За това през 2016 г. беше пусната Java 9, която предоставя пълнофункционална REPL среда.
Защо REPL е толкова полезен?
Като използваме REPL, не е необходимо да компилираме или тестваме нашия Java код с помощта на командата javac. След като използвате REPL,
- Няма нужда от редактор, за да напишете програмата на Java.
- Няма нужда да запазвате Java програмата.
- Няма нужда да компилирате Java програма.
- Няма нужда да редактирате, ако възникне грешка по време на компилиране или изпълнение.
- Няма нужда да повтаряте процеса.
Можем да оценяваме методи, класове и изрази, без да създаваме клас. Програмата „Hello World“ може да бъде написана и без създаване на клас.
лексикографски ред
Изисквания за използване на REPL
Има само едно изискване за използване REPL , т.е. трябва да имаме Java 9 или по-нова версия в нашата система. Ако Java 9 е инсталирана в нашата система, ние сме готови за използване REPL . За да проверите тока версия на Java във вашата система отворете командния ред и въведете следната команда:
java -version
Използване на REPL
По-долу са някои примери за REPL, в които оценяваме математическите изрази, изчисляваме редовете на Фибоначи, създаваме динамичен клас, познаваме историята и модифицираме класа.
Пример 1: Оценяване на математически изрази
jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5);
Описание:
xdxd значение
В първия ред създаваме променлива 'а' от тип double и задаваме първоначалната му стойност 10. След това намираме квадрата на променлива 'a' и го съхраняваме в същата променлива. След това просто добавяме 20 към променливата 'a'. Jshell ще постави резултата във временна променлива '' . След това изпълняваме '/чий' команда, която ни показва всички създадени променливи. Най-накрая създаваме променлива 'данни' от тип double и съхранявайте 5thстепен на цифрата 8.3.
Изход:
python __dict__
Пример 2: Изчисляване на редица на Фибоначи
jshell> int fibo(int no) (no == 1)) ...> return no;e all possible completions; total possible completions ...> else ...> return fibo(no-1)+fibo(no-2); ...> jshell> /methods jshell> fibo(11) jshell> fibo(12) jshell> int[] arr = { 1,2,3,4,5,6}; jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Описание:
В първите шест реда код създаваме метод за редицата на Фибоначи. След това използваме /методи команда на Jshell, която ни показва всички налични методи. В следващите два реда тестваме фибо() метод чрез предаване на цели числа. Създаваме масив обр за да определим колко членове искаме да получим реда на Фибоначи. След това итерираме всяка стойност на arr, използвайки за всеки цикъл. Предаваме всяка стойност на arr на метода fibo() и отпечатваме нейната върната стойност.
Изход:
Пример 3: REPL за повторна употреба
jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Описание:
подрязване на java низ
В горния код създаваме метод fibo() със същия тип връщане и аргумент, които сме създали преди. По това време Jshell замества предишния 'fibo()' метод с текущия. След това предаваме всяка стойност на arr на функцията, за да гарантираме дали нашият метод fibo() е отменен или не.
Изход:
Пример 4: Дефиниране на класа
jshell> class Student{ ...> public String Name; ...> public int age; ...> public String course; ...> public int semester; ...> public Student(String Name, int age, String course, int semester){ ...> this.Name=Name; ...> this.age=age; ...> this.course = course; ...> this.semester=semester; ...> } ...> public void showData(){ ...> System.out.println('Name= '+ Name); ...> System.out.println('Age= '+ age); ...> System.out.println('Course= '+ course); ...> System.out.println('Semester= '+semester); ...> } ...> }
Описание:
В горния код създаваме клас 'Студент' , които имат име, възраст, курс и семестър. Създаваме конструктор, в който задаваме стойностите на тези променливи. След конструктора създаваме метод, който показва стойността на всички променливи за всеки екземпляр на класа.
Изход:
Пример 5: Създаване на екземпляр на класа
jshell> Student s1 = new Student( 'Shubham Rastogi', 18, 'MCA', 4); jshell> Student s2 = new Student( 'Kartik Rastogi', 23, 'MCA', 3); jshell> /vars jshell> s1.showData(); jshell> s2.showData();
Описание:
gimp промяна на цвета
В горния код създаваме два екземпляра на класа и предаваме стойността на конструктора за всички променливи на класа. След това изпълняваме командата Jshell, за да проверим дали променливите s1 и s2 са създадени или не. Най-накрая извикваме метода showData(), за да покажем данни за всеки екземпляр.
Изход: