java programiranje

20
Mašinski fakultet Univerziteta u Nišu Projektni rad Predmet: Objektno orijentisano programiranje Tema: Aplikacija-Kalkulator pisana u Javi Profesor: dr Daragan Mišić Asistent: Studenti: Maja Nikolić 126 [Type text] Page 1

Upload: vekas859

Post on 19-Jan-2016

143 views

Category:

Documents


3 download

DESCRIPTION

Kalkulator

TRANSCRIPT

Page 3: Java programiranje

Mašinski fakultet Univerziteta u Nišu

1. Uvod u Java programskom jeziku

Java (engl. Java, izgovor: java, ∗džava) je objektno-orijentisani programski jezik, koji je razvila kompanija Sun Microsystems početkom devedesetih godina. Mnogi koncepti Jave su zasnovani na jeziku Oberon Niklausa Virta, tvorca Paskala, Module i drugih jezika, i Hanspetera Mesenbeka. Izbacili su koncept modula i uveli pakete kakve danas znamo, koji se oslanjaju na fajl sistem i uveli formalno koncept klasa iz objektno-orijentisane paradigme. Osim toga, jezik ima sintaksu sličnu jezicima C i C++, ali je mnogo stroži pri prevođenju, dizajniran tako da bude nezavisan od platforme, i sa pojednostavljenim upravljanjem memorijom. Pretpostavlja se da je ovo urađeno zbog popularnosti jezika C, ali i zbog jednostavnosti nekih struktura. Prva verzija je zvanično objavljena 1995. godine.

Pisanje i izvršavanje Java koda

Java je objektno-orijentisani programski jezik te kao takav poštuje pravilo da se jedna klasa nalazi u jednom fajlu (osim unutrašnjih klasa). Izvorni kod se čuva u fajlovima sa nastavkom .java. Programi napisani u programskom jeziku Java se ne kompajliraju u mašinski kod, već se prevode u bajt-kod, i tako prevedeni fajlovi imaju nastavak .class. Da bi se izvršio program napisan u Javi, neophodno je imati Java Virtuelnu Mašinu, na kojoj se interpretira bajt-kod. Upravo se korištenjem Java Virtuelne Mašine postiže nezavisnost od platforme, tako da se isti bajt-kod može jednako izvršavati na svakom operativnom sistemu na kome je instalirana Java Virtuelna Mašina.

Komentari Jednoredni komentari obeležavaju se sa // i završavaju se na kraju reda Dvosmerni komentari obeležavaju se sa /* i završavaju se sa */. Ovi komentari mogu se

prostirati preko više redova. Ne mogu biti ugneždeni.

Komentari za dokumentaciju obeležavaju se sa /** i završavaju se sa */. Ovi komentari mogu se prostirati preko više redova. Ne mogu biti ugneždeni.

Separatori

Za razdvajanje, java koristi nekoliko znakova:

() (obične zagrade) - Služe za odvajanje liste parametara od poziva metode. Koriste se i za naglašavanje prioriteta izraza, za grupisanje izraza u upravljačkim naredbama kao i za određivanje tipova podataka pri konverziji.

[Type text] Page 3

Page 4: Java programiranje

Mašinski fakultet Univerziteta u Nišu

{} (vitičaste zagrade) - Služe za ograđivanje vrednosti automatski inicijalizovanih nizova, za definisanje blokova naredbi, klasa, metoda kao i za definisanje lokalnog opsega važenja promenljivih.

[] (uglaste zagrade) - Koriste se za izdvajanje vrednosti članova nizova i za deklarisanje samih nizova.

; (tačka i zarez) - Zaključuje naredbu.

, (zarez) - Razdvaja identifikatore u deklaraciji promenljive i koristi se za povezivanje naredbi unutar petlji.

. (tačka) - Služi za razdvajanje naziva paketa od potpaketa i klasa kao i za razdvajanje promenljivih ili metoda od imena objekata.

Rezervisane reči

Sve do J2SE5, java je sadržavala 48 rezervisanih reči. Uz sintaksu separatora i operatora one predstavljaju definiciju programskog jezika Java.

Rezervisane reči jave su: abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile i while.

Osim ovih, rezervisane su i vrednosti: true, false i null.

Izgovor

Programski jezik Java je dobio naziv po ostrvu u Indoneziji, sa koga SAD uvoze velike količine kafe. Drugim rečima, Java je u SAD pojam koji se vezuje za kafu na sličan način kao što je to u Srbiji Brazil. Amerikanci ime ovog ostrva (pa samim tim i ime programskog jezika) izgovaraju Džava ili Đava, što je pogrešno, jer Indonežani, svoje ostrvo nazivaju upravo tako - Java. U srpskom govornom području je ustaljeno da se ime programskog jezika izgovara isto kao i ime ostrva, dakle, Java, iako se ponegde praktikuje američki izgovor.

[Type text] Page 4

Page 5: Java programiranje

Mašinski fakultet Univerziteta u Nišu

[Type text] Page 5

Page 7: Java programiranje

Mašinski fakultet Univerziteta u Nišu

Za pisanje konzolnih aplikacija na programskom jeziku Java koristiće se Eclipse. Eclipse je integrisano razvojno okruženje (integrated development environment - IDE) otvorenog koda. Zamišljen je da se koristi kao razvojno okruženje Java programskog jezika i sastoji se od java razvojnih alata (Java Development Tools – JDT). Može se proširiti instaliranjem dodatnih aplikacija (engl. plugins). Sledi uputstvo za rad u ovom okruženju.

Kreiranje konzolne aplikacijePostoje tri načina za kreiranje Java projekta:1. Selektovanje File > New > Project,2. Selektovanje strelice sa dugmeta, a nakon toga Project,3. Desnim tasterom miša pritisnite na Package Explorer u Java Perspective pogledu i izaberite Project.

Izaberite Java project i pritisnite Next. sl.1

sl.1

Imenujte projekat. Ako želite da kreirate src i bin direktorijume za java i class fajlove izaberite Create separate source and output folders radio dugme iz Project layout dela New Java Project dijaloga .Podrazumevani direktorijum izvornog koda je src/ a za izlazne rezultate

[Type text] Page 7

Page 8: Java programiranje

Mašinski fakultet Univerziteta u Nišu

bin/. Možete promeniti ove podrazumevane direktorijume izborom Configure default.... Pritisnite Next dugme. sl.2

sl.2

Koraci za kreiranje izvorne datoteke (programa) su:1. Da bi se kreirao Java fajl iz glavnog menija treba izabrati File -> New -> Class.2. Uneti ime klase, u našem slučaju calculater_main.3. Izabrati public static void main(String[] args)4. Pritisnite dugme Finish sl.3

[Type text] Page 8

Page 9: Java programiranje

Mašinski fakultet Univerziteta u Nišu

sl.3

Kreiramo drugu klasu, u našem slučaju calculater_ui. sl.4

[Type text] Page 9

Page 10: Java programiranje

Mašinski fakultet Univerziteta u Nišu

sl.4

Class: calculater_main

public class calculater_main extends calculater_ui {

[Type text] Page 10

Page 11: Java programiranje

Mašinski fakultet Univerziteta u Nišu

/**

* @Vesna_Maja

*/

public static void main(String[] args) {

calculater_ui n = new calculater_ui();

n.ui();

}

}

Class: calculater_ui

import java.awt.FlowLayout;

import javax.swing.*;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class calculater_ui implements ActionListener {

JFrame frame = new JFrame("Calculater");

JPanel panel = new JPanel(new FlowLayout());

JTextArea text = new JTextArea(1,20);

JButton but1 = new JButton("1");

JButton but2 = new JButton("2");

JButton but3 = new JButton("3");

JButton but4 = new JButton("4");

JButton but5 = new JButton("5");

JButton but6 = new JButton("6");

JButton but7 = new JButton("7");

JButton but8 = new JButton("8");

JButton but9 = new JButton("9");

JButton but0 = new JButton("0");

JButton butadd = new JButton("+");

JButton butsub = new JButton("-");

[Type text] Page 11

Page 12: Java programiranje

Mašinski fakultet Univerziteta u Nišu

JButton butmulti = new JButton("*");

JButton butdiv = new JButton("/");

JButton buteq = new JButton("=");

JButton butclear = new JButton("C");

Double number1,number2,result;

int add=0,sub=0,multi=0,dive=0;

public void ui()

{

frame.setVisible(true);

frame.setSize(250, 200);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(panel);

panel.add(text);

panel.add(but1);

panel.add(but2);

panel.add(but3);

panel.add(but4);

panel.add(but5);

panel.add(but6);

panel.add(but7);

panel.add(but8);

panel.add(but9);

panel.add(but0);

panel.add(butadd);

panel.add(butsub);

panel.add(butmulti);

[Type text] Page 12

Page 13: Java programiranje

Mašinski fakultet Univerziteta u Nišu

panel.add(butdiv);

panel.add(buteq);

panel.add(butclear);

but1.addActionListener(this);

but2.addActionListener(this);

but3.addActionListener(this);

but4.addActionListener(this);

but5.addActionListener(this);

but6.addActionListener(this);

but7.addActionListener(this);

but8.addActionListener(this);

but9.addActionListener(this);

but0.addActionListener(this);

butadd.addActionListener(this);

butsub.addActionListener(this);

butmulti.addActionListener(this);

butdiv.addActionListener(this);

buteq.addActionListener(this);

butclear.addActionListener(this);}

@Override

public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

if(source==butclear)

{

number1=0.0;

number2=0.0;

text.setText("");

[Type text] Page 13

Page 14: Java programiranje

Mašinski fakultet Univerziteta u Nišu

}

if(source==but1)

{

text.append("1");

}

if(source==but2)

{

text.append("2");

}

if(source==but3)

{

text.append("3");

}

if(source==but4)

{

text.append("4");

}

if(source==but5)

{

text.append("5");

}

if(source==but6)

{

text.append("6");

}

[Type text] Page 14

Page 15: Java programiranje

Mašinski fakultet Univerziteta u Nišu

if(source==but7)

{

text.append("7");

}

if(source==but8)

{

text.append("8");

}

if(source==but9)

{

text.append("9");

}

if(source==but0)

{

text.append("0");

}

if(source==butadd)

{

number1=number_reader();

text.setText("");

add=1;

sub=0;

multi=0;

dive=0;

}

if(source==butsub)

[Type text] Page 15

Page 16: Java programiranje

Mašinski fakultet Univerziteta u Nišu

{

number1=number_reader();

text.setText("");

add=0;

sub=1;

multi=0;

dive=0;

}

if(source==butmulti)

{

number1=number_reader();

text.setText("");

add=0;

sub=0;

multi=1;

dive=0;

}

if(source==butdiv)

{

number1=number_reader();

text.setText("");

add=0;

sub=0;

multi=0;

dive=1;

}

if(source==buteq)

[Type text] Page 16

Page 17: Java programiranje

Mašinski fakultet Univerziteta u Nišu

{

number2=number_reader();

if(add>0)

{

result=number1+number2;

text.setText(Double.toString(result));

}

if(sub>0)

{

result=number1-number2;

text.setText(Double.toString(result));

}

if(multi>0)

{

result=number1*number2;

text.setText(Double.toString(result));

}

if(dive>0)

{

result=number1/number2;

text.setText(Double.toString(result));

}

}

}

public double number_reader()

[Type text] Page 17

Page 18: Java programiranje

Mašinski fakultet Univerziteta u Nišu

{

Double num1;

String s;

s=text.getText();

num1=Double.valueOf(s);

return num1;

}

}

Na kraju dobijemo završnu aplikaciju. sl.5

sl.5

[Type text] Page 18