Professional Documents
Culture Documents
Sipas OOP cdo gje eshte nje objekt dhe cdo objekt eshte pjese e nje klase.
Nje objekt eshte nje shembulltyre i nje klase ose instance e klases.
Nje program mund te kete disa klasa. Vetem nje klase mund te jete public
ne nje aplikim.
Deklarimi i klases
Me i perdorshem eshte private (nivel i larte sigurie dmth asnje klase nuk
ka te drejte te aksesoje fushat e nje klase por vetem metodat e klases
aktuale.)
1. tipi
2. emri
3. ;
get:
return fusha;
set:
fusha = arg;
// pra ka nje argument, nuk kthen vlere dhe i vendos fushes vleren e
argumentit qe e japim ne.
Organizimi i klasave
Shume klasa qe krijojme kane me shume se nje fushe te dhenash dhe dy
ose me shume metoda.
Psh
Nuk eshte gjithmone e nevojshme qe te krijohen metodat get dhe set per
cdo anetar te dhenash, por vetem per ata qe nevojiten.
return numri;
}
numri = n;
return mbiemri;
{ mbiemri = mb; }
{ return emri; }
{ emri = e; }
{ return rroga; }
{ rroga=r; }
}
Deklarimi i objekteve.
Krijimi i nje objekti:
Per te rezervuar vend ne memorje per nje objekt perdoret operatori new:
emri_i objektit.emri_metodes()
Metoda get thirret brenda metodes println sepse ajo kthen vlere.
Vlera e saj mund t'i jepet nje variabli dhe te kryhen veprime te metejshme
me te.
int k = pun1.getkodi()+5;
Shembull. Metoda set():
pun1.setemri("Agim");
Konstruktoret
Konstruktori eshte nje metode qe ben te mundur inicializimin e objektit,
duke i vendosur vlere fushave te tij.
Punonjes()
emri = "Alda";
rroga = 200;
kodi = 15;
}
Deklarimi i objektit:
emri = e;
rroga = r;
kodi = k;
Deklarimi i objektit:
int a;
Pra klasat mund te perdoren si tipe te dhenash te cilat i kemi krijuar vete
me perpara.
Employee.java
public class Employee
{
private int empNum;
private String empLastName;
String empFirstName;
private double empSalary;
public int getEmpNum()
{
return empNum;
}
public void setEmpNum(int emp)
{
empNum = emp;
}
public String getEmpLastName()
{
return empLastName;
}
public void setEmpLastName(String name)
{
empLastName = name;
}
public String getEmpFirstName()
{
return empFirstName;
}
public void setEmpFirstName(String name)
{
empFirstName = name;
}
public double getEmpSalary()
{
return empSalary;
}
public void setEmpSalary(double sal)
{
empSalary = sal;
}
Perdorimi I metodave
import java.util.Scanner;
class MetodatQePerdorNjePunonjes
Punonjes myPunonjes;
myPunonjes = getPunonjesData();
displayPunonjes(myPunonjes);
int id;
double sal;
id = input.nextInt();
tempEmp.setEmpNum(id);
sal = input.nextDouble();
tempEmp.setEmpSalary(sal);
return tempEmp;
}
Trashëgimia dhe Method Overriding
ndërsa klasa bazë në ndërtimin e saj nuk specifikon asgjë për të treguar që është
klasë bazë sepse çdo klasë mund të jetë klasë bazë.
class Person{
}
class Student extends Person{
Në këtë rast klasa Student trashëgon të gjitha atributet dhe metodat e klasës
Person.
Konstruktorët — çdo nënklasë mund të ketë konstruktorin e saj për inicializime
specifike por shpesh herë mund të përfshijë edhe sjelljen e klasës bazë. Kjo bëhet
duke përdorur fjalën kyçe super. Kur thërritet kostruktori i klasës bazë me super, ky
deklarim duhet te jetë i pari. Kur klasa bazë ka vetëm një konstruktor me parametra
atherë nënklasa duhet të thërras patjetër konstruktorin e klasës bazë. Nëse klasa
bazë ka konstruktor me dhe pa parametër dhe nënklasa nuk thërret super ateherë
do të thërritet automatikisht konstruktori paparametër i klasës bazë.
this – shënon instancën aktuale të klasës, përdoret për të aksesuar fieldet e klasës.
Normalisht nuk është e nevojshme por nëse në një metodë një argument ose
variabël lokale ka emer të njëjtë me një atribut të klasës përdorim this që të kapim
vlerën e atributit të instancës pasi normalisht ajo mbishkruhet nga parametri ose
variabli local i metodës.
1.në method overriding argument list duhet të jetë e njëjtë si metoda që mbishkruhet
2.tipi i vlerës që kthen metoda duhet të jetë i njëjtë ose i trashëguar nga ai i metodës
kryesore (sub-type)
6.Nëse një metodë nuk trashegohet (deklaruar si private) mbishkrimi ska kuptim
Enkapsulimi
Përfshirja e fieldeve( attribute dhe metoda) në një klasë dhe “fshehja” e funksionimit
të brendshëm të objektit.
Në këtë mënyrë objekti funksionon si një “kuti e zezë” ku një programist tjetër që
përdor objektin nuk ka pse të dijë mënyrën e brendshme të funksionimit të objektit.
Polimorfizmi
Vjen nga fjala në greqisht “shumë forma”. Ai përshkruan vetinë e disa gjuhëve të
programimit të cilat kanë aftesinë të interpretojnë të njëjtën fjalë kyçe në mënyra të
ndryshme në varësi të kontekstit. Java mundëson dy tipe të polimorfizmit:
Quhet runtime pasi vetëm gjatë egzekutimit përcaktohet se cila metodë egzekutohet
në varësi të tipit të objektit.
Ndërfaqet – Interfaces
Një ndërfaqe është një koleksion metodash abstrakte. Një klasë që implementon një
ndërfaqe duhet të implementoj të gjitha metodat që trashëgon. Ndërfaqja nuk është
klasë sepse klasa specifikon atribute dhe metoda ndërsa ndërfaqja vetëm metodat të
cilat klasa i implemeton. Klasa duhet të implementojë të gjitha metodat nga
ndërfaqet që implementon përveçse në rastin kur kjo klasë përcaktohet si abstrakte.
Në qoftë se një klasë implementon një ndërfaqe metodat e klasës duhet të
specifikojnë të njëjtin tip të vlerës së kthyer, sikurse në ndërfaqe, dhe parametrat që
merr secila metodë duhet të jenë të njejta me ato të ndërfaqes. Një klasë mund të
implementojë më shumë se një ndërfaqe.
Ngjashmëri me klasat
@Override
piket=4;
piket=5;
else if (piket <61)
piket=6;
else if (piket<71)
piket=7;
else if (piket<81)
piket=8;
else if (piket<91)
piket=9;
else if(piket<=100)
piket=10;
return piket;
@Override
double shuma = 0;
double mesatarja;
mesatarja = shuma/n;
return mesatarja;
}
public class Qeni extends Kafshe_shtepiake {