Sunteți pe pagina 1din 4

Programare Orientata pe Obiecte L A B O R A T O R 1 Utilizarea limbajului Java A.

Utilizarea limbajului Java in linie de comanda (Windows) a)- Se introduce in caile de cautare si calea catre Java (daca e necesar): set JAVA_HOME=C:\Program Files\Java\jdk1.6.0 set PATH=%JAVA_HOME%\BIN;%PATH% b)- Se creeaza un fisier text cu extensia "java" (folosind orice editor de texte ). Exemplu de program Java minimal: class A { public static void main ( String args[]) { System.out.println (" Hello Java World ! "); } } Fisierele care contin programe Java trebuie sa aiba un nume terminat cu sirul de caractere ".java". Exemple: a.java, test.java, etc. c)- Se compileaza programul dintr-un fisier cu numele "test.java" : javac test.java d)- Se executa clasa care contine functia "main" (cu care incepe executia): java A Comanda "java" primeste numele unei clase si nu al unui fisier; de aceea nu apare numele "A.class" in comanda de apelare interpretor. Comanda "java" contine un singur nume de clasa, care poate fi urmat de mai multe siruri separate prin blancuri, transmise ca argumente ale functiei "main". e) Pentru examinarea documentatiei se va deschide documentatia JDK intr-un browser Web si se va comuta intre fereastra DOS si browser (cu Alt-Tab). Documentatia se descarca sub forma de arhiva "zip", se dezarhiveaza si se introduce intr-un folder (de ex. "jdk1.6doc",in Program Files/Java sau separat) Exercitii de operare in linie de comanda: Se va lucra intr-un folder separat, initial gol (de ex. POO) 1. Se introduce programul Java de mai sus (clasa A) intr-un fisier cu numele test.java, se compileaza si se observa ce fisier apare dupa compilare. (Compilatorul "javac" creeaza, pentru fiecare clasa din fisierul sursa, cate un fisier care are numele clasei la care se adauga extensia ".class"). 2. Se modifica instructiunea din functia "main" astfel: System.out.println (" Hello "+ args[0]); Se va executa programul astfel: java A OOP 3. Sa se adauge cuvintul cheie "public" inaintea cuvintului "class" in definitia clasei "A" si sa se recompileze fisierul "test.java". Apoi se va

schimba numele clasei sau numele fisierului pentru ca ele sa coincida. (Un fisier care contine o clasa publica trebuie sa aiba acelasi nume cu clasa). 4. Sa se scrie un program cu o singura clasa care contine doua functii: functia statica "println" cu un argument de tip "String" (care afiseaza sirul primit ca argument) si functia statica "main" care apeleaza functia "print" pentru afisarea unui sir constant. Verificati daca este posibil ca o functie statica ca functia "main" sa apeleze o functie ne-statica, de ex. "print". static void println (String str) { System.out.println (str); } 5. Sa se modifice programul anterior prin definirea a doua clase, fiecare cu cate o singura functie (statica): o clasa pentru functia "main" si alta clasa pentru functia "print". Sa se verifice daca ambele clase din fisier pot fi publice. Observati ce fisiere apar dupa compilare. (la apelarea unei functii statice dintr-o alta clasa, numele functiei trebuie precedat de numele clasei). 6. Sa se modifice programul anterior prin crearea a doua fisiere sursa, fiecare fisier contine cate o clasa cu o singura functie. Stergeti toate fisierele de tip "class" din directorul de lucru si compilati numai fisierul cu clasa care contine functia "main". Observati aparitia a doua fisiere "class". Pentru executie se specifica numai numele clasei ce contine functia "main". 7. Program pentru adunarea unor numere intregi introduse ca argumente in linia de comanda si afisarea sumei lor. Pentru conversie din sir in format intern se foloseste metoda statica "parseInt" din clasa "Integer": int Integer.parseInt(String str); Exemplu de utilizare: java add 2 3 B. Utilizarea unui IDE Java: Java Creator (4.5 sau 5.0) a) - Se deschide o fereastra pentru crearea unui nou fisier sursa: File -> New -> File -> Java Classes -> Empty Java File / Main Class Ctrl+N -> Java Classes -> Empty Java File / Main Class Sau se deschide intr-o fereastra un fisier existent: File -> Open (Ctrl+O) b) - Se compileaza fisierul sursa (daca poate avea erori de compilare): Build -> Compile File Se poate folosi si sageata in jos din bara de instrumente. c) - Se executa: Build -> Execute File Se poate folosi si sageata spre dreapta din bara de instrumente. Daca suntem siguri ca nu exista erori de compilare se poate folosi tasta F5 (Compilare + Executie). Pentru a obtine informatii despre o clasa exista doua posibilitati: - Se alege optiunea "Java API" din JDK-Help si apoi se selecteaza pachetul (subpachetul) si clasa dorita. - Se aduce cursorul pe numele clasei si se apasa Ctrl-F1 (dureaza mai mult). Pentru a obtine informatii despre o functie (metoda sau constructor): - Se alege optiunea de cautare "Search API" din JDK-Help, se introduce numele clasei si Enter sau clic pe butonul "Search" (in loc de Enter).

- Se aduce cursorul pe numele metodei si se apasa Ctrl-F1. Documentatia despre clase se afla in subdirectorul "api". Selectand "api" se afiseaza numele pachetelor principale; selectand un nume de pachet (de exemplu "java") se afiseaza numele subpachetelor s.a.m.d. Exercitii de utilizare a mediului integrat JCreator 8. Verificati ce se intampla daca functia "main" nu are argumente sau daca lipseste atributul "public" sau "static". 9. Verificati ce se intampla la executarea unei instructiuni de forma: System.out.println (args[0]); Pentru introducere de argumente in linia de comanda la executia unui program in JCreator: Configure -> Options -> JDK Tools -> Select Tool Type: Run Application -> -> Default -> Edit -> Parameters -> Prompt for main method arguments 10. Scrieti si verificati un program cu o singura clasa Java care contine o functie statica de tip "boolean" care verifica daca un intreg dat este prim sau nu si o functie "main" care afiseaza numerele prime mai mici ca 50. Constantele logice se numesc "true" si "false". Verificati daca functia poate fi definita dupa ce a fost apelata (in "main"). 11. Scrieti si verificati o functie statica care determina cmmdc a doi intregi (prin algoritmul lui Euclid) in doua variante: iterativ si recursiv. Crearea si utilizarea de biblioteci de clase a) Introduceti intr-un fisier "Cin.java" textul urmator, care contine metode statice pentru citire de la tastaura de numere intregi sau reale ("float"). import java.util.Scanner; // functii statice pentru citire de la consola public class Cin { static Scanner sc= new Scanner(System.in); // to read integers public static boolean hasNextInt() { return sc.hasNextInt(); } public static int nextInt() { return sc.nextInt(); } // to read floats public static boolean hasNextFloat() { return sc.hasNextFloat(); } public static float nextFloat() { return sc.nextFloat (); } } b) Introduceti intr-un fisier "CinDemo.java" textul urmator, care verifica metode din clasa Cin:

class CinDemo { public static void main (String arg[]) { float a[]= new float[100]; int i=0; while ( Cin.hasNextFloat()) a[i++]=Cin.nextFloat(); for (int j=0;j<i;j++) System.out.print(a[j]+ " "); } } c) Compilati fisierul "CinDemo.java": javac CinDemo.java d) Executati programul introducand mai multe numere separate prin blancuri si terminate cu orice caracter ce nu poate sa apara in numere (de ex. '='). java CinDemo e) Creati o biblioteca cu o singura clasa: jar cvf mylib.jar Cin.class f) Mutati fisierele Cin.java si Cin.class in alt director (vor mai fi necesare) Compilati "CinDemo.java" cu indicarea caii spre biblioteca: javac -cp mylib.jar CinDemo.java ("cp" este o versiune mai scurta pentru optiunea "classpath") g) Executati clasa CinDemo cu specificarea cailor catre bibliotecile de clase: java -cp .;mylib.jar CinDemo (Punctul desemneaza directorul curent, unde se cauta clasa CinDemo. Daca sunt mai multe arhive si/sau directoare cu clase, ele sunt separate prin caracterul ';')

Lucrul cu pachete de clase (in JCreator) a) Adaugati la inceputul fisierului "Cin.java" linia urmatoare: package mypackage; b) Stergeti fisierul "Cin.class" si compilati fisierul "Cin.java": javac -d . Cin.java Observati unde apar rezultatele compilarii: se creeaza un subdirector "mypackage" in care se scrie fisierul "Cin.class". c) Adaugati la inceputul fisierului "CinDemo.java" linia urmatoare: import mypackage.Cin; Compilati si executati clasa "CinDemo".

S-ar putea să vă placă și