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.
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,
- Nije potreban urednik za pisanje Java programa.
- Nema potrebe za spremanjem Java programa.
- Nema potrebe kompilirati Java program.
- Nema potrebe za uređivanjem ako se pojavi bilo kakva pogreška tijekom prevođenja ili izvođenja.
- Nema potrebe ponavljati postupak.
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
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
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:
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:
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:
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: