Clasa - un model(sablon)folosit pentru a crea mai multe obiecte cu aceeasi caracteristici
- este o reprezentare generală a unei categorii de obiecte din care se pot deriva prin instanţiere obiecte concrete
Date + metode = obiect – un obiect inglobeaza date si operatii si reprezinta o abstractizare a
unei entitati din lumea reala. Limbajul procedural – axat pe verbe (subprograme) Limbaj obiectual – concentrat pe substantive (date) Constructorii – metode speciale care au acelasi nume cu cel al clasei, nu returneaza nicio valoare si sunt folositi pentru initializarea obiectelor acelei clase la instantierea lor. - apelati automat la instantierea unui obiect, sau explicit cu this - constructorii superclasei se apeleaza cu super dintr-o subclasa - pot fi mai multi constructori care sa difere prin lista de argumente primite Modificatori – private- nici o alta clasa nu poate instantia obiecte ale acestei clase. -protected- doar subclasele pot crea obiecte de tipul clasei respective - public – orice clasa poate crea instante ale clasei respective Și/sau - Static- arata ca o variabila este de clasa, nu de instanta - final – declara o constanta - transient – folosit la serializarea obiectelor - volatile – semnaleaza compilatorului sa nu efectueze anumite optimizari Modificator metoda – private, protected, public, static, -abstract- o metoda care nu are implementare, apartine unei clase abstracte -final – metoda nu mai poate fi supradefinita in subclase -native – refolosirea functiilor din alte limbaje -synchronized – in caz ca se lucreaza pe mai multe fire de executie, are ca efect construirea unui semafor Mostenirea – o superclasa si o subclasa care preia comportamentul si atributele clasei parinte - class idClasa extends idClasaBaza - supraincarcarea si supradefinirea = polimorfism - supraincarcarea = mai multe metode cu acelasi nume, dar signaturi diferite - supradefinirea = metode cu acelasi nume, dar aceeasi signatura cu a superclasei Clasa abstracta – Reprezentarea cu ajutorul claselor a conceptelor abstracte care sa nu poata fi instantiate si care sa foloseasca doar la dezvoltarea ulterioara a unor clase ce descriu obiecte concrete. Pachet – o colectie de clase si interfete intrudite. Folosirea pentru gasirea si utilizarea mai usoara a claselor, pentru a evita conflictele de nume, si pentru a controla accesul la clase. - sprijina modularitatea String–clasă pentru lucrul cu date nemodificabile compuse din mai multe caractere; StringBuffer – clasa pentru lucrul cu date modificabile compuse din mai multe caractere Interfata – o colectie de metode fara implementare si declaratii de constante. Doar modificatorul public poate aparea in declaratia unei interfete. - instantierea lor nu ocupa memorie Utilitatea interfetelor – definirea unor similaritati intre clase independente - impunerea unor specificatii - definirea unor grupuri de constante -transmiterea metodelor ca parametrii Comparable - un obiect se poate compara cu el insusi Comparator – compara obiecte diferite (instante ale altor clase) - returneaza o valoare pozitiva, zero, negativa Exceptii – o exceptie este un eveniment care se produce in timpul executiei unui programsi care provoaca intreruperea cursului normal al executiei - se creeaza folosind sintaxa throwing an exception - secventa care o trateaza se numeste exception handler - interceptarea ei se numeste catch the exception Avantaje exceptii – gruparea erorilor dupa tipul lor - propagarea unei erori pana la un analizator de exceptii - separarea codului pentru tratarea erorii Try….catch….finally Colectii – o colectie este un obiect care grupeaza mai multe elemente intr-o unitate - folosite pentru memorarea si manipularea datelor - sortate, ordonate, duplicate, folosesc chei Avantaje: - reducerea efortului de programare - cresterea vitezei si calitatii programului Fluxuri – un flux este un canal de comunicare unidirectional intre doua procese - un proces care descrie o sursa externa de date se numeste proces producator - un proces care descrie o destinatie externa de date se numeste consumator - exista fluxuri de citire-scriere sau fluxuri de procesare (impreuna cu unul primitiv) Serializarea – este o metoda ce permite transformarea unui obiect intr-o secventa de octeti sau caractere din care sa poata fi refacut ulterior obiectul original - asigura un mecanism simplu de utilizat pentru salvarea si restaurarea datelor - metodele unor alte obiecte de pe alta masina pot fi apelate ca si cum ar exista pe masina locala JDBC – o interfata standard SQL de acces la date. Colectie de clase si interfete. - accesul la baza de date se face printr-un driver - permite stabilirea unei conexiuni cu baza de date, trimiterea cererilor SQL, procesarea rezultatelor - interfata de nivel jos 1. Driver ODBC-potrivit pentru firme, unde instalarile pe masina client nu sunt o problema. 2. Apel nativ-driver java- converteste apelurile JDBC in apeluri interne pe bazele de date. Necesita ca o parte de cod sa fie incarcata pe masina client. 3. Driver JDBC pur – converteste apelurile in protocoale independente de baza de date. Cea mai flexibila implementare. 4. Driver Java – protocol nativ – converteste apelurile JDBC direct in protocolul de retea al bazei de date. Apeluri directe de pe masina client la baza de date, practic pentru accesul la internet. Fir de executie – o succesiune secventiala de instructiuni care se executa in cadrul unui proces - se creeaza prin Thread, se implementeaza prin Runnable Un fir de executie se poate gasi in 4 stari: new thread, runnable, not runnable, dead. In prima stare firul este vid, deci nu are alocate resurse de catre sistem. Putem executa o singura operatie asupra lui, si anume lansarea in executie, apoi trece in executie alocand resursele sistem necesare, in starea runnable. Aici se planifica firul de executie la procesor pentru a fi lansat. Un fir ajunge in starea not runnable daca este adormit prin apelul metodei sleep, s-a apelat metoda wait, sau este blocat intr-o operatie de intrare/iesire. Starea dead este starea in care un fir de executie ajunge la terminarea sa.