logo

Read-Eval-Print Loop (REPL) u Javi

The Petlja Read-Eval-Print ili REPL je sučelje ljuske. Ovo sučelje čita i procjenjuje svaki redak unosa i zatim ispisuje rezultat. The Petlja Read-Eval-Print pomaže nam u interakciji s našim runtimeom aplikacije prisutnim u određenom stanju. Naredbe čita i procjenjuje REPL i ispisati rezultat. Nakon ispisa rezultata, REPL se vraća na početak kako bi pročitao, procijenio i ispisao naš sljedeći unos.

Read-Eval-Print Loop (REPL) u Javi

Koristeći REPL, možemo jednostavno pisati i testirati naš Java kod bez kompajliranja i možemo vidjeti izlaz izravno na konzoli.

Java već nema REPL?

Definitivno, REPL mora biti na ustaljenom jeziku kao što je Java . No, nemaju svi jezici REPL, a Java je jedan od njih. Java programeri su to najviše zahtijevali. Java je neko vrijeme imala nešto poput REPL-a kao Java Beanshell. Ali projekt nije bio potpuno opremljen REPL s drugim jezicima. Za to je 2016. godine objavljena Java 9, koja pruža potpuno funkcionalno REPL okruženje.

Zašto je REPL toliko koristan?

Korištenjem REPL-a ne moramo kompajlirati ili testirati naš Java kod pomoću naredbe javac. Nakon korištenja REPL-a,

  1. Nije potreban urednik za pisanje Java programa.
  2. Nema potrebe za spremanjem Java programa.
  3. Nema potrebe kompilirati Java program.
  4. Nema potrebe za uređivanjem ako se pojavi bilo kakva pogreška tijekom prevođenja ili izvođenja.
  5. Nema potrebe ponavljati postupak.
Read-Eval-Print Loop (REPL) u Javi

Možemo procijeniti metode, klase i izjave bez stvaranja klase. Program 'Hello World' također se može napisati bez stvaranja klase.

bharti jha

Zahtjevi za korištenje REPL-a

Postoji samo jedan zahtjev za korištenje REPL , tj. trebali smo Java 9 ili noviju verziju u našem sustavu. Ako je Java 9 instalirana u našem sustavu, spremni smo za korištenje REPL . Kako bi se provjerila struja verzija Jave u vašem sustavu otvorite naredbeni redak i upišite sljedeću naredbu:

 java -version 

Read-Eval-Print Loop (REPL) u Javi

Korištenje REPL

Ispod su neki primjeri REPL-a u kojima procjenjujemo matematičke izraze, izračunavamo Fibonaccijev niz, stvaramo dinamičku klasu, poznajemo povijest i modificiramo klasu.

10 na potenciju broja 6

Primjer 1: Procjena matematičkih izraza

 jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5); 

Opis:

U prvom retku kreiramo varijablu 'a' tipa double i postavimo mu početnu vrijednost 10. Nakon toga pronađemo kvadrat varijable 'a' i pohranimo ga u istu varijablu. Nakon toga jednostavno dodamo 20 varijabli 'a'. Jshell će staviti rezultat u privremenu varijablu '' . Zatim izvršavamo '/čiji' naredba, koja nam pokazuje sve kreirane varijable. Na kraju, stvaramo varijablu 'podaci' tipa double i pohranite 5thsnaga znamenke 8.3.

Izlaz:

nizovi java
Read-Eval-Print Loop (REPL) u Javi

Primjer 2: Izračunavanje Fibonaccijevog niza

 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)); ...> } 

Opis:

U prvih šest redaka koda stvaramo metodu za Fibonaccijev niz. Nakon toga koristimo /metode naredba Jshell-a, koja nam pokazuje sve dostupne metode. U sljedeća dva retka testiramo fibo() metoda prosljeđivanjem cjelobrojnih vrijednosti. Mi stvaramo niz arr kako bismo odredili koliko članova želimo dobiti u Fibonaccijevom nizu. Zatim ponavljamo svaku vrijednost arr koristeći za svaku petlju. Svaku vrijednost arr-a prosljeđujemo metodi fibo() i ispisujemo povratnu vrijednost.

Izlaz:

Read-Eval-Print Loop (REPL) u Javi

Primjer 3: REPL za ponovnu upotrebu

 jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> } 

Opis:

U gornjem kodu stvaramo metodu fibo() s istim povratnim tipom i argumentom koji smo stvorili prije. U ovom trenutku, Jshell nadjačava prethodni 'fibo()' metoda s trenutnom. Zatim svaku vrijednost arr-a prosljeđujemo funkciji kako bismo provjerili je li naša metoda fibo() nadjačana ili ne.

Izlaz:

Read-Eval-Print Loop (REPL) u Javi

Primjer 4: Definiranje klase

što je objekt java
 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); ...> } ...> } 

Opis:

U gornjem kodu stvaramo klasu 'Student' , koji imaju naziv, dob, predmet i semestar. Kreiramo konstruktor u kojem postavljamo vrijednosti tim varijablama. Nakon konstruktora kreiramo metodu koja prikazuje vrijednost svih varijabli za svaku instancu klase.

Izlaz:

Read-Eval-Print Loop (REPL) u Javi

Primjer 5: Kreiranje instance klase

 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(); 

Opis:

kolika je veličina ekrana mog računala

U gornjem kodu stvaramo dvije instance klase i prosljeđujemo vrijednost konstruktoru za sve varijable klase. Zatim pokrećemo naredbu Jshell da provjerimo jesu li varijable s1 i s2 stvorene ili ne. Na kraju pozivamo metodu showData() za prikaz podataka svake instance.

Izlaz:

Read-Eval-Print Loop (REPL) u Javi