java programiranje
DESCRIPTION
KalkulatorTRANSCRIPT
Mašinski fakultet Univerziteta u Nišu
Projektni radPredmet: Objektno orijentisano programiranje
Tema: Aplikacija-Kalkulator pisana u Javi
Profesor: dr Daragan Mišić
Asistent:
Studenti:
Maja Nikolić 126
Vesna Stojanović 104
[Type text] Page 1
Mašinski fakultet Univerziteta u Nišu
Sadržaj:
1. Uvod u Java programskom jeziku...................................................3
2. Softversko okruženje -Pisanje Aplikacije kalkulator....................................................................................6
[Type text] Page 2
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
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
Mašinski fakultet Univerziteta u Nišu
[Type text] Page 5
Mašinski fakultet Univerziteta u Nišu
2. Softversko okruženje -Pisanje Aplikacije kalkulator
[Type text] Page 6
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
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
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
Mašinski fakultet Univerziteta u Nišu
sl.4
Class: calculater_main
public class calculater_main extends calculater_ui {
[Type text] Page 10
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
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
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
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
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
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
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
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