Sunteți pe pagina 1din 11

smaranda.belciug@inf.ucv.

ro
Laborator 1
Programare orientat obiect Object Oriented Programming (OOP)
Gndirea n termeni de obiecte
Definiie 1. Un obiect este un element independent al unui program care reprezint
un set de caracteristici corelate i este proiectat pentru a realiza anumite sarcini.
Obiectele sunt denumite i instane.
Definiie 2. O clas este un model (ablon) folosit pentru a crea mai multe obiecte cu
aceleai caracteristici,
Atunci cnd scriei un program OOP, nu definii obiecte individuale, ci clase de
obiecte.
Exemplu.
Clasa Tree (Copac) descrie caracterisiticile tuturor copacilor:
Are frunze i rdcini
Crete
Produce clorofil
Un exemplu de proiectare a unei clase
Clasa CommandButton
Textul de pe buton
Dimensiunile butonului
Aspectul
Modul de comportare
o Are nevoie de un click sau de dou pentru a aciona
o Ingora mouse-ul
o Ce va realiza dup ce va fi apsat?
Definiie 3. O bibliotec de clase este un grup de clase proiectate pentru a fi folosite
mpreun cu alte programe.
Atribute i comportament
O clas n Java este alctuit din: atribute i comportament.
Exerciiu. Realizarea unui clase Jabberwock (dragon imaginat de Lewis Carroll)
Atributele reprezint parametrii individuali care difereniaz o clas de obiecte de
alta.
Atribute Jabberwock
Culoare: portocaliu, pamntiu, galben lmie, galben aprins.
Sex: masculin, feminin, nu e treaba ta.
Pofta: stul, flmnd.
1

smaranda.belciug@inf.ucv.ro
Atributele unei clase de obiecte pot conine informaii despre starea unui obiect
(stare de sntate, preferine de votare).
Variabilele unui atribut = variabile de instan
Definie 4. O variabil de instan este un element de informaie care definete
atributul unui anumit obiect. Clasa obiectului definete ce fel de atribut este i
fiecare instana i pstreaz propria valoare pentru acel atribut. Variabilele de
instan mai sunt denumite i variabilele obiectului.
Un obiect al clasei Jabberwock poate fi j.
j.flamand = false; // lui Jabberwock nu i este foame.
Definiie 5. O variabil de clas este un element de informaie care definete
atributul unui ntregi clase. Variabila se aplic nsei clasei i tuturor instanelor
acesteia, deci este stocat o singur valoare, indiferent de cte obiecte ale clasei au
fost create.
Numrul de obiecte Jabberwock ce triesc ntr-o comunitate. Dac ar fi fost o
variabil de instan fiecare obiect ar fi pstrat o numrtoare diferit, ceea ce nu
este corect.
Comportamentul unei clase de obiecte
Comportamentul este modul n care clasele de obiecte pot face ceva cu ele nsele
sau cu alte obiecte. Comportamentul unei clase de obiecte este determinat cu
ajutorul metodelor.
Definiie 6. Metodele sunt grupuri de instrucini dintr-o clas de obiecte, care
acioneaz asupra acesteia sau asupra altor clase sau obiecte.
Obiectele comunic unele cu altele folosind metode.
Exact ca i n cazul variabilelor avem metode de instan i metode de clas.
Crearea unei clase
Definiia obinuit de clas.
class Jabberwock {
}
Pentru a crea o clasa mai sofisticat introducei trei variabile de instan imediat
dup rndul class Jabberwock {
String culoare;

smaranda.belciug@inf.ucv.ro
String sex;
boolean flamand;
Clasa String este folosit pentru a pstrarea textului i pentru diferite funcii de
manipulare a textului.
O metod care s-i defineasc comportamentul.
void hranescJabberwock(){
if (flamand == true) {
System.out.println(Bun un taran!);
flamand = false;
} else
System.out.println(nu, multumesc am mancat deja!);
}
// comentariu va urma
O alta metod de afiare a atributelor.
void afisareAtribute(){
System.out.println(acesta este un jabberwock + sex + + culoare + +
.);
if (flamand == true)
System.out.println(Jabberwock-ul este flamand);
else
System.out.println(Jabberwock-ul este satul);
}
Dac rulam acum programul o s gsim urmtoarea eroare:
In class Jabberwock: void main (String argv[]) is not defined
Vom crea metoda main().
public static void main (String argumente[]){
Jabberwock j = new Jabberwock();
j.culoare = portocaliu;
j.sex = mascul;
j.flamand = true;
System.out.println(apelez afisareAtribute..);
j.afisezAtribute();
System.out.println(Hranesc Jabberwock-ul );
j.hranescJabberwock();
System.out.println(apelez afisareAtribute..);
j.afisezAtribute();
System.out.println(Hranesc Jabberwock-ul );
j.hranescJabberwock();

smaranda.belciug@inf.ucv.ro
}
Organizarea claselor i comportamentul acestora
Programarea orientat obiect n Java se bazeaz pe trei concepte: motenirea,
interfeele i pachetele.
Motenirea
Definiie 7. Motenirea este un mecanism care permite unei clase s moteneasc
comportamentul i atributele unei alte clase.
Prin motenire o clas dobndete imediat tot comportamentul unei clase existente.
Din acest motiv, noua clas poate fi creat prin simpla specificare a diferenelor fat
de clasa existent.
Definiie 8. O clas care motenete alt clas este denumit subclas, iar clasa care
i ofer motenirea se numete superclas.
O clas poate avea o singura superclas, ns poate avea unu numr nelimitat de
subclase.
Definiie 9. Subclasarea reprezint crearea unei noi clase, care motenete o clas
existent. Singurul lucru care trebuie fcut n subclas este definirea diferenelor n
comportament i atribute fa de superclas.
n cazul n care apelm o metod a unui anumit obiect, interpretorul Java verific mai
nti clasa obiectului, pentru a gsi acea metod. Dac metoda nu este gsit,
interpretorul o caut n superclasa clasei i aa mai departe pn este gsit definiia
metodei.
n cazul n care o subclas definete o metod cu acelai nume, tip de rezultat i
argumente care sunt definite i ntr-o superclasa, aceast procedur se numete
anulare prin suprascriere sau suprascriere (overridding).
Motenirea simpl i multipl
Forma de motenire folosit n Java este denumit motenire simpl (single
inheritance) deoarece fiecare clas Java poate avea o singur superclas (cu toate c
orice superclas poate avea mai multe subclase).
n alte limbaje pot fi i moteniri multiple (C++).
Interfee
Definiie 10. O interfa (Interface) este o colecie de metode care indic faptul c o
clas are un anumit comportament suplimentar fa de ceea ce motenete de la
superclasele sale.

smaranda.belciug@inf.ucv.ro
Pachete
Pachetele (packages) n Java reprezint o modalitate de a grupa clasele i interfee
nrudite. Pachetele permit grupurilor de clase s fie disponibile doar dac este nevoie
de ele, eliminnd potenialele conflicte ntre numele claselor din diferite grupuri de
clase.
Bibliotecile de clase Java sunt coninute ntr-un pachet denumit java.
n mod prestabilit, clasele dumneavoastr Java au acces doar la clasele
java.lang. Pentru restul trebuie explicitate numele lor sau importat fiierul
surs.
Pentru a v referi la o clas din cadrul unui pachet, trebuie s introducei
pachetele care conin clasa, urmate de numele clasei, elementele fiind
separate prin puncte (.).
Crearea unei subclase
Vom crea un applet. Crearea unui applet Java este diferit de crearea aplicaiilor.
Applet-urile Java ruleaz ca parte a unei pagini Web.
Toate applet-urile reprezint subclase ale clasei Applet (care face parte din pachetul
java.applet).
public class Palindrom extends java.applet.Applet{
//va urma
}
extends - modul de declarare a faptului ca o clas este subclasa altei clase
public - indica faptul c Palindrom este o clasa accesibil altor clase care ar putea
avea nevoie s o foloseasc
Toate applet-urile trebuie declarate public.
Font f = new Font (TimesRoman, Font.BOLD, 36);
new creeaz un nou obiect de tip Font
public void paint (Graphics ecran){
ecran.setFont(f);
ecran.setColor(Color.red);
ecran.drawString(Go hang a salami, Im a lasgna dog., 5, 40);
}
Metoda paint e declara public pentru a o putea suprascrie pe metoda paint din
superclas. O metod public nu poate fi suprascris dect de o metod public,
altfel programul nu se va compila cu succes.
Clasa Graphics se ocup cu reprezentarea fonturilor, culorilor sau desenatului.
5 i 40 reprezint coordonatele unde va fi scris textul respectiv.
Daca ncercai compilarea textului vei avea eroarea:

smaranda.belciug@inf.ucv.ro
Palindrom.java:2: Class Font not found in type declaration
import java.awt.Graphics;
import java.awt.Font;
import java.awt.Color;

import java.awt.*;

ABC-ul Java

Expresii i instruciuni Java


Variabile i tipuri de date
Comentarii
Literale
Aritmetica
Comparaii
Operatori logici

Instruciuni i expresii
Definiie 11. O instruciune (statement) este o comand simpl, scris ntr-un limbaj
de programare i care determin o aciune.
int varsta = 30;
import java.awt.dnd;
System.out.println(Nu esti seful meu!);
jucator.scor = 415467;
Unele instruciuni produc o valoare cum ar fi cazul cnd se adun dou numere.
Aceste instruciuni se numesc expresii.
Definiie 12. O expresie (expression) este o instruciune care are ca rezultat
producerea unei valori. Valoarea poate fi pstrat pentru o folosire ulterioar n
program, poate fi folosit imediat ntr-o alt instruciune sau poate fi ignorat.
Valoarea produs de o instruciune este numite valoare de retur (return value).
Un grup de instruciuni grupate ntre acolade se numete bloc sau bloc de
instruciuni.
Variabile i tipuri de date
Definiie 12. Variabilele reprezint un loc unde poate fi pstrat informaia ntr-un
program aflat n execuie. Valoarea poate fi modificat oricnd n program de aici i
numele.
Variabile de instan sunt folosite pentru a defini atributele unui obiect
Variabile de clas definesc atributele unei ntregi clase de obiecte i se
aplic tuturor instanelor acesteia

smaranda.belciug@inf.ucv.ro

Variabile locale sunt folosite n interiorul definiiilor metodelor, sau chiar al


blocurilor de instruciuni mai mici din cadrul unei metode. Ele pot fi folosite
doar atunci cnd metoda sau blocul este executat de interpretorul Java, dup
care i inceteaz existena.

Atenie! Java nu are variabile globale (care pot fi folosite n orice parte a unui
program). Variabilele de clas i de instan sunt folosite pentru a comunica
informaii despre un obiect sau un altul i pot nlocui nevoia de variabile globale.
Momentan vom studia variabilele locale.
Crearea variabilelor
int scorMaxim;
String numeUtilizator;
boolean jocTerminat;
String strada, oras, judet;
int codPostal = 434121;
greutate = 65;
Definiiile variabilelor de instan i de clas primesc o valoare iniial n funcie de
tipul informaiei pe care o stocheaz:
Varibile numerice: 0;
Caracterele: \0;
Variabile booleene: false;
Obiecte: null;
Tipuri de variabile

Un tip de date de baz


Numele unei clase sau interfee
Un tablou

Tipuri de date
Tipuri de ntregi
byte 8 bii ntre -128 i 127
short 16 bii ntre -32768 i 32767
int 32 bii ntre -2147483648 i 2147483647
long 64 bii ntre -9223372036854775808 i 9223372036854775807
Numere n virgul mobil
float ntre 1,4E-45 i 3,4E+38
double ntre 4,9E-324 i 1,7E+308
char caractere individuale (Atenie exist i clasa Char)
boolean true i false (Atenie exist i clasa Boolean)
7

smaranda.belciug@inf.ucv.ro
Tipuri de clase
Jabberwock primulMonstru;
Culoare par;
Referirea la o superclas ca tip de variabil este folositoare atunci cnd variabila
poate fi una dintre mai multe subclase diferite. De exemplu, s considerm o
superclas Fruct, i trei subclase Mar, Par i Capsuna. Dac vei crea o variabil Fruct
denumit fructulPreferat, ea va putea fi folosit pentru a referi un obiect Mar, Par
sau Capsuna.
Atenie! Java nu are echivalent pentru typedef din C sau C++. Pentru a declara noi
tipuri n Java, se declar o nou clas, iar variabilele pot folosi aceast clas drept tip.
Comentarii
Definiie 13. Comentariile reprezint informaii introduse ntr-un program doar n
ajutorul persoanelor care ncearc s-i dea seama ce anume se ntmpl n
program.
// i /* . */

Literale
Definiie 14. Literalele sunt numerele, textul i alte informaii care reprezint direct
o valoare.
Exemple.
\n linie nou (new line)
\t tabulator (tab)
\b stergere napoi un caracter (backspace)
\r revenire la capat de rand (carriage return)
\f salt la pagina nou (formfeed)
\\ - semnul backslash (\)
\ ghilimele simple
\ ghilimele duble
\d octal
\xd hexazecimal
\ud caracter unicode
Expresii i operatori
O expresie reprezint o instruciune care produce o valoare.
Definiie 15. Operatorii reprezint simboluri speciale folosite n funcii matematice,
n unele tipuri de instruciuni de atribuire sau n comparaii logice.

smaranda.belciug@inf.ucv.ro
class AmoebaMath {
public static
int x =
short y
float a

void main (String argument[]){


6;
= 4;
= .12f;

System.out.println("Ati inceput cu " + x + " amoebe.");


System.out.println("\tDoua s-au casatorit si partenerii
lor s-au mutat la ele.");
x = x + 2;
System.out.println("Aveti acum " + x);
System.out.println("\tSe declanseaza mitoza care dubleaza
numarul de amoebe.");
x = x * 2;
System.out.println("Aveti acum " + x);
System.out.println("\tIncepe o lupta. " + y + " amoebe
pleaca.");
x = x - y;
System.out.println("Aveti acum " + x);
System.out.println("\tAtac al paramecilor! Ati pierdut o
treime din colonie!");
x = x - (x / 3);
System.out.println("Ati ramas cu " + x + "amoebe.");
System.out.println("Costul intretinerii zilnice per
amoerba: $" + a);
System.out.println("Costul total zilnic: $" +(a*x));
}
}

Ati inceput cu 6 amoebe.


Doua s-au casatorit si partenerii lor s-au mutat la ele.
Aveti acum 8
Se declanseaza mitoza care dubleaza numarul de amoebe.
Aveti acum 16
Incepe o lupta. 4 amoebe pleaca.
Aveti acum 12
Atac al paramecilor! Ati pierdut o treime din colonie!
Ati ramas cu 8amoebe.
Costul intretinerii zilnice per amoerba: $0.12
Costul total zilnic: $0.96

Nicio amoeba nu a fost ranit pe parcursul producerii acestui program.


Metoda System.out.println() este folosit pentru a afia iruri i alte informaii pe
dispozitivul standard de ieire (ecranul).
+ - se folosete pentru concatenare
Mai multe despre atribuire
x = y = z = 7; // toate variabilele or sa aiba valoarea 7
int x = 5;

smaranda.belciug@inf.ucv.ro
x = x + 2; // x = 7, nti se calculeaza x + 2, apoi se atribuie valoarea lui x

x += y
x -= y
x *=y
x /= y

x=x+y
x=xy
x=x*y
x=x/y

Incrementare i decrementare
Definiie 16. Incrementarea unei variabile nseamn a aduga 1 la valoarea sa, iar
decrementarea unei variabile nseamn a scdea 1 din valoarea sa.
++ incrementare
-- decrementare
int x, y,z;
x = 42;
y = x++; // y ia valoarea lui x (42) si apoi x este incrementat la 43
z = ++x; // x este incrementat la 44 si apoi z ia valoarea lui x
Comparaii
== Egal
!= diferit
< mai mic dect
> mai mare dect
< = mai mic egal cu
>= mai mare egal cu
boolean modern;
int varsta = 31;
modern = varsta < 25;
Operatori logici
& i && - AND
| i || - OR
^ - XOR
! NOT
Precedena operatorilor

operaii de incrementare i decrementare


Operaii aritmetice
Comparaii
Operaii logice

10

smaranda.belciug@inf.ucv.ro

Expresii de atribuire

Dac dou operaii au aceeai preceden, cea aflat mai n stnga n cadrul
expresiei va fi calculat nainte de cea din dreapta.
Tabelul de mai jos conine operatori Java si precedena lor. Cei de la nceput sunt
evaluai primii.
. [] ()

++ -- ! ~ instanceof

new
*/%
+<< >> >>>
< > <= >=
== !=
&
^
|
&&
||
?:
= += -= *= /= %= ^=
&= |= <<= >>= >>>=

() pentru a grupa expresii


[] a accesa tablouri
. metode si obiecte
Operatorul instanceof va intoarce true sau false in functie
daca obiectul este sau nu o instanta a clasei sau a oricarei
subclase a ei
Crearea de noi instante
Inmultire, impartire, modulo
Adunare, scadere
Deplasarea pe biti la stanga si la dreapta
Teste de comparatie
Egalitate
AND
XOR
OR
AND logic
OR logic
Prescurtate pentru if then else
Atribuiri
atribuiri

11

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

  • Manual de Utilizare Cerrus 400
    Manual de Utilizare Cerrus 400
    Document201 pagini
    Manual de Utilizare Cerrus 400
    Mirela Marinescu
    Încă nu există evaluări
  • Afis Date Personale
    Afis Date Personale
    Document1 pagină
    Afis Date Personale
    Mirela Marinescu
    Încă nu există evaluări
  • Traducerea YAG - III
    Traducerea YAG - III
    Document33 pagini
    Traducerea YAG - III
    Mirela Marinescu
    Încă nu există evaluări
  • Visucam 500 - Instrucţiuni de Utilizare PDF
    Visucam 500 - Instrucţiuni de Utilizare PDF
    Document2 pagini
    Visucam 500 - Instrucţiuni de Utilizare PDF
    Mirela Marinescu
    Încă nu există evaluări
  • Traducere 532s
    Traducere 532s
    Document81 pagini
    Traducere 532s
    Mirela Marinescu
    Încă nu există evaluări
  • Corelare Pentacam
    Corelare Pentacam
    Document2 pagini
    Corelare Pentacam
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 9
    WEBlab 9
    Document15 pagini
    WEBlab 9
    Mirela Marinescu
    Încă nu există evaluări
  • Contract - Scolarizare - Optica Si Optometrie - FSE PDF
    Contract - Scolarizare - Optica Si Optometrie - FSE PDF
    Document4 pagini
    Contract - Scolarizare - Optica Si Optometrie - FSE PDF
    Mirela Marinescu
    Încă nu există evaluări
  • INVESTIGATII PP
    INVESTIGATII PP
    Document15 pagini
    INVESTIGATII PP
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 12
    WEBlab 12
    Document6 pagini
    WEBlab 12
    Mirela Marinescu
    Încă nu există evaluări
  • XML Form
    XML Form
    Document1 pagină
    XML Form
    Mirela Marinescu
    Încă nu există evaluări
  • Proiect Web Cerinte
    Proiect Web Cerinte
    Document1 pagină
    Proiect Web Cerinte
    Mirela Marinescu
    Încă nu există evaluări
  • GLAUCOMUL
    GLAUCOMUL
    Document10 pagini
    GLAUCOMUL
    Mirela Marinescu
    100% (1)
  • WEBlab 10
    WEBlab 10
    Document9 pagini
    WEBlab 10
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 1
    WEBlab 1
    Document35 pagini
    WEBlab 1
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 7
    WEBlab 7
    Document9 pagini
    WEBlab 7
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 8
    WEBlab 8
    Document17 pagini
    WEBlab 8
    Mirela Marinescu
    Încă nu există evaluări
  • Web Lab 3
    Web Lab 3
    Document25 pagini
    Web Lab 3
    Sanfira Marius
    Încă nu există evaluări
  • WEBlab 4
    WEBlab 4
    Document12 pagini
    WEBlab 4
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 5
    WEBlab 5
    Document18 pagini
    WEBlab 5
    Mirela Marinescu
    Încă nu există evaluări
  • WEB Ex7 8
    WEB Ex7 8
    Document3 pagini
    WEB Ex7 8
    Mirela Marinescu
    Încă nu există evaluări
  • WEB Ex3 4
    WEB Ex3 4
    Document2 pagini
    WEB Ex3 4
    Mirela Marinescu
    Încă nu există evaluări
  • WEB Ex1 2
    WEB Ex1 2
    Document3 pagini
    WEB Ex1 2
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 6
    WEBlab 6
    Document10 pagini
    WEBlab 6
    Mirela Marinescu
    Încă nu există evaluări
  • WEBlab 2
    WEBlab 2
    Document12 pagini
    WEBlab 2
    Mirela Marinescu
    Încă nu există evaluări
  • Lab 11 Java
    Lab 11 Java
    Document9 pagini
    Lab 11 Java
    Mirela Marinescu
    Încă nu există evaluări
  • Lab 12 Java
    Lab 12 Java
    Document15 pagini
    Lab 12 Java
    Mirela Marinescu
    Încă nu există evaluări
  • Lab 8 Java
    Lab 8 Java
    Document18 pagini
    Lab 8 Java
    Mirela Marinescu
    Încă nu există evaluări
  • Lab 10 Java
    Lab 10 Java
    Document6 pagini
    Lab 10 Java
    Mirela Marinescu
    Încă nu există evaluări
  • Lab 9 Java
    Lab 9 Java
    Document16 pagini
    Lab 9 Java
    Mirela Marinescu
    Încă nu există evaluări