Professional Documents
Culture Documents
Parimet e Programimit Në Java: Struktura e Komponenteve: Ndërtimi I Metodave Dhe Klasave
Parimet e Programimit Në Java: Struktura e Komponenteve: Ndërtimi I Metodave Dhe Klasave
Parimet e Programimit Në Java: Struktura e Komponenteve: Ndërtimi I Metodave Dhe Klasave
Metodat
Metod: varg i emrtuar urdhrash; i destinuar pr kryerjen e nj detyre ose prgjegjsie specike.
public class MyApplication { public static void main(String[] args) { // ... Instruksionet t cilat ekzekutohen // me startimin e aplikacionit } }
Metodat Vazhdim
import java.awt.*; import javax.swing.*; public class MyPanel extends JPanel { public MyPanel() { // ... Instruksionet pr konstruktimin dhe inicializimin // e panelit } public void paintComponent(Graphics g) { // ... Instruksionet pr vizatim n panelin } }
Metodat publike
System.out.println("TEKSTI");
Metodat publike
System.out.println("TEKSTI");
Invokim metode: drgim mesazhi i cili prfshin emrin e metods. Mesazhi krkon q objekti pranues t ekzekutoj metodn e emrtuar n mesazhin.
Metodat publike
System.out.println("TEKSTI");
Invokim metode: drgim mesazhi i cili prfshin emrin e metods. Mesazhi krkon q objekti pranues t ekzekutoj metodn e emrtuar n mesazhin. Klient: objekti i cili drgon mesazh (invokim).
Metodat publike
System.out.println("TEKSTI");
Invokim metode: drgim mesazhi i cili prfshin emrin e metods. Mesazhi krkon q objekti pranues t ekzekutoj metodn e emrtuar n mesazhin. Klient: objekti i cili drgon mesazh (invokim). Pranues: objekti i cili pranon mesazh; ekzekuton metodn e emrtuar n mesazhin.
Prnga sintaksa, metoda prbhet nga ballina (header line) dhe trupi.
Prnga sintaksa, metoda prbhet nga ballina (header line) dhe trupi. Metoda publike i sht n dispozicion publikut gjeneral, prfshir sistemin operativ t kompjuterit si dhe objekte t krijuara nga klas tjera.
/** Vizaton ASCII art. */ public class AsciiArtWriter { /** Konstruktori */ public AsciiArtWriter() { System.out.println(); } /** Afishon nj blet. */ public void printBee() { System.out.println(" ,-."); System.out.println(" \\_/"); // \\ pr \ System.out.println(">{|||}-"); System.out.println(" / \\"); System.out.println(" -^"); System.out.println(); }
// \ pr
Metodat konstruktor
Konstruktor: metod prbrenda klass e cila invokohet automatikisht kur t konstruktohet nj objekt n memorien qendrore t kompjuterit.
DrawArt
main { 1> AsciiArtWriter writer = new AsciiArtWriter(); ... }
DrawArt
main { AsciiArtWriter writer == 1> writer = PRIT ... } ? ;
a1 : AsciiArtWriter
AsciiArtWriter() { 2> System.out.println(); } public void printBee() {...} public void printButterfly() {...} public void printLadybug() {...}
DrawArt
main { AsciiArtWriter writer == 1> writer = a1 ... } ? ;
a1 : AsciiArtWriter
public void printBee() {...} public void printButterfly() {...} public void printLadybug() {...}
DrawArt
main { AsciiArtWriter writer == ... 1> writer.printBee(); ... } a1 ;
a1 : AsciiArtWriter
public void printBee() {...} public void printButterfly() {...} public void printLadybug() {...}
DrawArt
main { AsciiArtWriter writer == ... 1> PRIT ... } a1 ;
a1 : AsciiArtWriter
public void printBee() { 2> System.out.println(...); ... } public void printButterfly() {...} public void printLadybug() {...}
DrawArt
main { AsciiArtWriter writer == a1 ; ... 1> System.out.println("Test"); ... }
a1 : AsciiArtWriter
public void printBee() {...} public void printButterfly() {...} public void printLadybug() {...}
Parametrat e metodave
Parametrat aktual: argumentet lista e t cilve jepet s bashku me emrin e metods gjat invokimit t metods, p.sh.,
System.out.println("TEKSTI");
DrawArt
main { AsciiArtWriter writer == a1 ; String s == "Tringa" ; 1> writer.printBeeWithName(s); ... }
a1 : AsciiArtWriter
public public public public void void void void printBee() {...} printButterfly() {...} printLadybug() {...} printBeeWithName(String name) {...}
DrawArt
main { AsciiArtWriter writer == a1 ; String s == "Tringa" ; 1> writer.printBeeWithName("Tringa"); ... }
a1 : AsciiArtWriter
public public public public void void void void printBee() {...} printButterfly() {...} printLadybug() {...} printBeeWithName(String name) {...}
... public void printBeeWithName { 2> String name = "Tringa"; System.out.println(...); ... } ...
a1 : AsciiArtWriter
... public void printBeeWithName { String name == "Tringa" 2> System.out.println(...); ... } ...
a1 : AsciiArtWriter
Format e parametrave
do vler e cila mund ti shoqrohet (ndahet pr vler) nj variableje mund t jet parametr aktual. Parametri aktual duhet t jet kompatibil me parametrin formal.
import java.text.*; /** Kryen operacione matematike. */ public class MathOperations { /** Afishon numrin invers t nj numri t plot * t formatizuar n tri vende decimale. * @param i numri i plot i cili invertohet */ public void printInverse(int i) { DecimalFormat formatter = new DecimalFormat("0.000"); double d = 1.0 / i; String s = formatter.format(d); System.out.println(s); } }
/** Afishon numrin invers t nj numri t plot. * @param i numri i plot i cili invertohet * @param pattern shablloni pr formatizimin e rezultatit */ public void printInverse(int i, String pattern) { DecimalFormat formatter = new DecimalFormat(pattern); double d = 1.0 / i; String s = formatter.format(d); System.out.println(s); }
Shoqrimi i parametrave aktual parametrave formal prcaktohet nga renditja n list e parametrave aktual parametrat aktual u shoqrohen parametrave formal me radh.
/** Afishon numrin invers t nj numri t plot. * @param i numri i plot i cili invertohet * @param f objekti i cili formatizon rezultatin */ public void printInverse(int i, DecimalFormat f) { double d = 1.0 / i; String s = f.format(d); System.out.println(s); }
Metodat konstruktor mund t shfrytzojn parametra formal njsoj sikurse metodat tjera publike. Metoda ballina e s cils ka formn
public void EMRI_I_METODS()
sht metod me zero parametra formal dhe duhet t invokohet nga urdhr i cili ka zero parametra aktual:
OBJEKTI_PRANUES.EMRI_I_METODS();
Specikim interfejsi (interfejs): list emrash dhe prgjegjsish t metodave publike t nj klase.
MyWriter krijon dritare grake e cila ashon nj fjali
Konstruktori:
MyWriter(int w, int h)
Metodat:
writeSentnce(String s) repositionSentence(int x, int y)
import javax.swing.*; import java.awt.*; /** Krijon dritare grafike e cila afishon nj fjali. */ public class MyWriter extends JPanel { private int width; private int height; private String sentence = ""; private int xPosition; private int yPosition;
/** Konstruktor: krijon panelin. * @param w gjersia e dritares * @param h lartsia e dritares */ public MyWriter(int w, int h) { width = w; height = h; xPosition = width / 5; yPosition = height / 2; JFrame myFrame = new JFrame(); myFrame.getContentPane().add(this); myFrame.setTitle("Shkruesi im"); myFrame.setSize(width, height); myFrame.setVisible(true); }
/** Vizaton panelin. * @param g penda grafike */ public void paintComponent(Graphics g) { g.setColor(Color.white); g.fillRect(0, 0, width, height); g.setColor(Color.red); g.drawString(sentence, xPosition, yPosition); }
/** Afishon nj fjali. * @param s fjalia q afishohet */ public void writeSentence(String s) { sentence = s; this.repaint(); } /** Riafishon fjalin n pozitn e re. * @param x pozita e re horizontale * @param y pozita e re vertikale */ public void repositionSentence(int x, int y) { xPosition = x; yPosition = y; this.repaint(); } }
import javax.swing.*; /** Afishon n dritare grafike nj fjali t futur. */ public class MyWriterTest { public static void main(String args) { int width = 300; int height = 200; MyWriter writer = new MyWriter(width, height); writer.repositionSentence(50, 80); String s = JOptionPane.showInputDialog("Rradhisni ca tekst:"); writer.writeSentence(s); } }
1. Disenjuam dhe shkruam nj klas e cila mund t shfrytzohet si komponent e shum aplikacioneve. 2. Disenjuam nj specikim interfejsi i cili na ndihmoi ta shkruajm klasn. 3. Shfrytzuesit e klass mund ta lexojn specikim e klass pr t kuptuar se si ti shfrytzojn metodat e klass; nuk ka nevoj pr ta lexuar kodimin e klass. 4. Kodimi shfrytzoi konstruktor dhe fusha private pr t ndihmuar metodat publike t sillen n mnyr korrekte; metodat publike invokuan njra tjetrn sipas nevojs.
Kur nj aplikacion ndrtohet nga disa njerz, sht m leht pr njerzit ve e ve t shkruajn dhe testojn pjest e aplikacionit n qoft se aplikacioni ndahet n klas. N qoft se nj pjes aplikacioni duhet srish t shkruhet ose t zvendsohet, sht m leht pr tu br n qoft se pjesa sht nj klas e veant.
Rezultat metode: prgjegjje e llogaritur nga metoda dhe e kthyer klientit. Funksion: metod e cila kthen rezultat.
ConvertorTest
main { int f == 14 1> TemperatureConvertor convert = new TemperatureConvertor(); double c = convert.fahrenheitToCelsius(f); ... }
ConvertorTest
main { int f == 14 TemperatureConvertor convert == a1 1> double c = convert.fahrenheitToCelsius(f); ... }
a1 : TemperatureConvertor
public double fahrenheitToCelsius(double f) {...}
a1 : TemperatureConvertor
fahrenheitToCelsius { double f == 14 double c == -10.0 2> return c; }
ConvertorTest
main { int f == 14 a1 TemperatureConvertor convert == double c == ? 1> c = -10.0; ... }
a1 : TemperatureConvertor
public double fahrenheitToCelsius(double f) {...}
Metodat private
Metodat private mund t invokohen vetm prbrenda klass n t cil paraqiten.
Metodat private
Metodat private mund t invokohen vetm prbrenda klass n t cil paraqiten. Metoda private shkruhen si zgjidhje n dy situata: 1. Kur ka prsritje t nj detyre. 2. Kur nj formul ose nnalgoritm fundamental meriton t ket emr t vetin.
Algoritmi pr paraqitjen e dritares grake me ku t kaltr e qendr t bardh: 1. Ngjyros tr dritaren n t kaltr. 2. Llogarit madhsin e nj drejtkndshi t madhsis ca m t vogl sesa tr dritarja. 3. Ngjyros drejtkndshin n t bardh.
/** Vizaton panelin. * @param g penda grafike */ public void paintComponent(Graphics g) { makeBorder(g); g.setColor(Color.red); g.drawString(sentence, xPosition, yPosition); } /** Ngjyros kufirin e kornizs. * @param pen penda grafike */ private void makeBorder(Graphics pen) { pen.setColor(Color.blue); pen.fillRect(0, 0, width, height); int borderSize = 20; int rectWidth = width - 2 * borderSize; int rectHeight = height - 2 * borderSize; pen.setColor(Color.white); pen.fillRect(borderSize, borderSize, rectWidth, rectHeight); }
import javax.swing.*; import java.awt.*; /** Vizaton tri ve t renditura. */ public class StackedEggWriter extends JPanel { private int frameWidth; private int frameHeight; private int egg1Size; private int egg2Size; private int egg3Size;
/** Konstruktori. * @param width gjersia e panelit * @param height lartsia e panelit * @param size1 gjersia e ves s poshtme * @param size2 gjersia e ves s mesme * @param size3 gjersia e ves s siprme */ public StackedEggWriter(int width, int height, int size1, int size2, int size3) { frameWidth = width; frameHeight = height; egg1Size = size1; egg2Size = size2; egg3Size = size3; JFrame myFrame = new JFrame(); myFrame.getContentPane().add(this); myFrame.setTitle("Mullar vezsh"); myFrame.setBackground(Color.yellow); myFrame.setSize(frameWidth, frameHeight); myFrame.setVisible(true); }
/** Mbush dritaren me vez. * @param g penda grafike */ public void paintComponent(Graphics g) { int egg1Top = paintAnEgg(frameHeight, egg1Size, g); int egg2Top = paintAnEgg(egg1Top, egg2Size, g); paintAnEgg(egg2Top, egg3Size, g); }
/** Vizaton nj ve. * @param bottom pozita e skajit t poshtm * @param width pozita e skajit t poshtm * @param pen penda grafike * @return y pozita e skajit t siprm */ private int paintAnEgg(int bottom, int width, Graphics pen) { int height = 2 * width / 3; int top = bottom - height; int left = (frameWidth - width) / 2; pen.setColor(Color.pink); pen.fillOval(left, top, width, height); pen.setColor(Color.black); pen.drawOval(left, top, width, height); return top; }
/** main pr testim */ public static void main(String args) { int width = 300; int height = 200; new StackedEggWriter(width, height, 140, 90, 50); } }