Objektno
description
Transcript of Objektno
-
package lekcija1;
/**
* Klasa Pravougaonik. Polja a i b su stranice pravougaonika. Poseduje
metode
* za izracunavanje obima i povrsine.
*/
public class Pravougaonik {
private double a;
private double b;
public Pravougaonik(double a, double b) {
//this je referenca na objekat nad kojim se poziva metoda (ne
postoje pokazivaci)
this.a = a;
this.b = b;
}
public Pravougaonik(Pravougaonik p) {
this.a = p.a;
this.b = p.b;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getO() {
return 2*a + 2*b;
}
public double getP() {
return a * b;
}
//izvrsavanje programa krece od main metode
public static void main(String[] args) {
//promenljiva p je referenca na objekat klase Pravougaonik
Pravougaonik p = new Pravougaonik(3, 4);
System.out.println(p.getA() + "\t" + p.getB());
}
}
...........................................................................................................................
package lekcija1;
/**
* Primer nizova u javi.
*/
public class TestNiz {
public static void main(String[] args) {
//kreiranje niza
double a[] = new double[3];
//kreiranje i inicijalizacija niza
int[] b = {1, 7, 9, 3, 4};
//operator [] koristimo za pristup elementu niza
a[0] = 2.5;
//iteracija kroz niz
//koristimo polje length koje poseduje svaki niz
for (int i = 0; i < b.length; i++) {
System.out.println("Element na poziciji "+ i + " je + b[i]);
}
//nizovi objekata
Pravougaonik p1 = new Pravougaonik(10,2);
Pravougaonik p2 = new Pravougaonik(3,4);
Pravougaonik pravougaonici[] = new Pravougaonik[2];
pravougaonici[0] = p1;
pravougaonici[1] = p2;
for (int i = 0; i < pravougaonici.length; i++) {
System.out.println("Pravougaonik na poziciji " + i +
" ima povrsinu " + pravougaonici[i].getP());
}
}
}
-
package lekcija2.interfejsi;
/**
* Definicija interfejsa GeometrijskaFigura. Sadrzi dve apstraktne metode
* za izracunavanje obima i izracunavanje povrsine
*/
public interface GeometrijskaFigura {
//apstraktna metoda
//nema telo i ima rezervisanu rec abstract
//ali se kod interfejsa ne mora pisati jer su sve metode u interfejsu
apstraktne
//u javi je svaka metoda virtualna (ne treba dodatno pisati)
public double getObim();
public double getPovrsina();
}
............................................................................................................................
package lekcija2.interfejsi;
/**
* Klasa Krug. Polje r je poluprecnik kruga. Poseduje metode
* za izracunavanje obima i povrsine. Implementira GeometrijskuFiguru
*/
public class Krug implements GeometrijskaFigura {
protected double r;
public Krug(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
@Override
public String toString() {
return "Krug(r=" + r + ")";
}
//klasa Math sadrzi matematicke funkcije i konstante
@Override
public double getObim() {
return 2 * r * Math.PI;
}
//funkcija pow dize r na stepen 2
@Override
public double getPovrsina() {
return Math.pow(r, 2) * Math.PI;
}
}
............................................................................................................................
-
package lekcija2.interfejsi;
/**
* Klasa Pravougaonik. Polja a i b su stranice pravougaonika. Poseduje
metode
* za izracunavanje obima i povrsine. Implementira GeometrijskuFiguru
*/
//rezervisana rec implements predstavlja implementaciju interfejsa
public class Pravougaonik implements GeometrijskaFigura {
protected double a;
protected double b;
public Pravougaonik(double a, double b) {
this.a = a;
this.b = b;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
//anotacija @Override oznacava da je metoda nasledjena
//ukoliko postoji anotacija a mi nismo napisali dobro prototip metode
kompajler javlja gresku
//moze i da se ne navede
@Override
public double getObim() {
return 2 * (a + b);
}
@Override
public double getPovrsina() {
return a * b;
}
@Override
public String toString() {
return "Pravougaonik(a=" + a + ", b=" + b + ")";
}
}
............................................................................................................................
package lekcija2.interfejsi;
/**
* Klasa Kvadrat. Nasledjuje klasu Pravougaonik. Obe stranice su iste
*/
public class Kvadrat extends Pravougaonik {
public Kvadrat(double a) {
super(a, a);
}
@Override
public void setA(double a) {
super.setA(a);
super.setB(a);
}
@Override
public void setB(double b) {
super.setA(b);
super.setB(b);
}
@Override
public String toString() {
return "Kvadrat(a=" + a + ")";
}
}
............................................................................................................................
-
package lekcija2.interfejsi;
/**
* Testira ostale klase u ovom paketu.
*/
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.testiraj();
}
private void testiraj() {
Pravougaonik p = new Pravougaonik(2,3);
Krug k = new Krug(4);
ispisiPovrsinu(p);
ispisiPovrsinu(k);
}
private void ispisiPovrsinu(GeometrijskaFigura g) {
//getPovrsina - pozvace se prava metoda jer su sve metode u
javi virtuelne
System.out.println("Povrsina je: " + g.getPovrsina());
}
}
package lekcija2.kompozicija;
import zadatak1.Krug;
import lekcija1.Pravougaonik;
/**
* KLasa Valjak. Sadrzi osnovu koja je krug i omotac modelovan pomocu
pravougaonika.
* Sadrzi metode za izracunavanje povrsine i zapremine.
*/
public class Valjak {
//kompozicija
private Krug b;
private Pravougaonik m;
public Valjak(double r, double h) {
//inicijalizacija objekata clanova
this.b = new Krug(r);
this.m = new Pravougaonik(b.getO(), h);
}
public Valjak(Valjak v) {
//inicijalizacija objekata clanova
this.b = new Krug(v.b.getR());
this.m = new Pravougaonik(v.m);
}
public double getR() {
return b.getR();
}
public double getH() {
return m.getB();
}
public double getP() {
return 2*b.getP() + m.getP();
}
public double getV() {
return b.getP() * getH();
}
//testiramo klasu
public static void main(String[] args) {
Valjak v = new Valjak(2,4);
System.out.println("Povrsina valjka je: " + v.getP());
System.out.println("Zapremina valjka je: " + v.getV());
}
}
....
-
package lekcija2.nasledjivanje;
/**
* Definicija apstraktne klase GeometrijskaFigura. Sadrzi dve apstraktne
metode
* za izracunavanje obima i izracunavanje povrsine
*/
public abstract class GeometrijskaFigura {
//apstraktna metoda
//nema telo i ima rezervisanu rec abstract
//u javi je svaka metoda virtualna (ne treba dodatno pisati)
public abstract double getObim();
public abstract double getPovrsina();
}
............................................................................................................................
package lekcija2.nasledjivanje;
/**
* Klasa Krug. Polje r je poluprecnik kruga. Poseduje metode
* za izracunavanje obima i povrsine. Nasledjuje GeometrijskuFiguru
*/
public class Krug extends GeometrijskaFigura {
protected double r;
public Krug(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
@Override
public String toString() {
return "Krug(r=" + r + ")";
}
//klasa Math sadrzi matematicke funkcije i konstante
@Override
public double getObim() {
return 2 * r * Math.PI;
}
//funkcija pow dize r na stepen 2
@Override
public double getPovrsina() {
return Math.pow(r, 2) * Math.PI;
}
}
............................................................................................................................
-
package lekcija2.nasledjivanje;
/**
* Klasa Pravougaonik. Polja a i b su stranice pravougaonika. Poseduje
metode
* za izracunavanje obima i povrsine. Nasledjuje GeometrijskuFiguru
*/
//rezervisana rec extends predstavlja nasledjivanje
public class Pravougaonik extends GeometrijskaFigura {
protected double a;
protected double b;
public Pravougaonik(double a, double b) {
this.a = a;
this.b = b;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
//anotacija @Override oznacava da je metoda nasledjena
//ukoliko postoji anotacija a mi nismo napisali dobro prototip metode
kompajler javlja gresku
//moze i da se ne navede
@Override
public double getObim() {
return 2 * (a + b);
}
@Override
public double getPovrsina() {
return a * b;
}
@Override
public String toString() {
return "Pravougaonik(a=" + a + ", b=" + b + ")";
}
}
............................................................................................................................
package lekcija2.nasledjivanje;
/**
* Klasa Kvadrat. Nasledjuje klasu Pravougaonik. Obe stranice su iste
*/
public class Kvadrat extends Pravougaonik {
public Kvadrat(double a) {
super(a, a);
}
@Override
public void setA(double a) {
super.setA(a);
super.setB(a);
}
@Override
public void setB(double b) {
super.setA(b);
super.setB(b);
}
@Override
public String toString() {
return "Kvadrat(a=" + a + ")";
}
}
............................................................................................................................
-
package lekcija2.nasledjivanje;
/**
* Testira ostale klase u ovom paketu.
*/
public class Test {
public static void main(String[] args) {
Pravougaonik p = new Pravougaonik(2,3);
Krug k = new Krug(4);
Kvadrat kv = new Kvadrat(3);
ispisiPovrsinu(p);
ispisiPovrsinu(k);
ispisiPovrsinu(kv);
((Pravougaonik)kv).setB(1);
ispisiPovrsinu(kv);
}
private static void ispisiPovrsinu(GeometrijskaFigura g) {
//getPovrsina - pozvace se prava metoda jer su sve metode u javi virtuelne
System.out.println(g);
System.out.println("Povrsina je: " + g.getPovrsina());
}
}
package lekcija3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Pokazuje upotrebu try catch bloka i unosa sa tastature
*/
public class Test {
public static void main(String[] args) {
Help h = new Help();
h.ispis();
h.ispis();
}
}
............................................................................................................................
package lekcija3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Help {
public Help(){};
public void ispis(){
System.out.println("TEST");
System.out.println("Unesite identifikacioni broj:");
BufferedReader br = null;
try {
br = new BufferedReader(new
InputStreamReader(System.in));
int id = Integer.parseInt(br.readLine());
System.out.println("Uneli ste identifikacioni broj: " + id);
} catch (NumberFormatException nfe) {
System.out.println("Identifikacioni broj mora biti celobrojna
vrednost!");
nfe.printStackTrace();
} catch (Exception e) {
System.out.println("Dogodio se neki drugi izuzetak.");
e.printStackTrace();
} finally {
//zatvaranje readera
//i zatvaranje moze da baci izuzetak pa odatle novi try/catch
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
-
package lekcija4;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;
/**
* Rad sa fajlovima.
* Pisanje objekata u fajl i citanje objekata iz fajla.
* Upis teksta u fajl i citanje teksta iz fajla.
*/
public class Files {
@SuppressWarnings("resource")
public static void main(String[] args) {
Osoba o = new Osoba("Marko", "Markovic");
System.out.println("Upis osobe u datoteku...");
save("C:\\javaObject.raw", o); //moze i druga fajl ekstenzija
System.out.println("Citanje osobe iz datoteke...");
Osoba retO = load("C:\\javaObject.raw"); //moze i druga fajl
ekstenzija
System.out.println(retO);
System.out.println("-------------------------------------");
int redovi = unesiBroj();
System.out.println("Broj redova je: " + redovi);
System.out.println("Unesite zeljeni tekst:");
String[] niz = new String[redovi];
Scanner in = new Scanner(System.in);
for(int i=0; i
-
} finally {
if(out != null)
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//metoda koja cita objekat klase Osoba iz fajla
public static Osoba load(String file){
ObjectInputStream in = null;
Osoba ret = null;
try {
in = new ObjectInputStream(new
BufferedInputStream(new FileInputStream(file)));
ret = (Osoba) in.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(in != null)
try {
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return ret;
}
//metoda koja snima multiline tekst u fajl
public static void saveText(String file, String[] text) {
BufferedWriter out = null;
try {
out = new BufferedWriter(new FileWriter(file));
for(int i=0; i
-
package lekcija4;
import java.io.Serializable;
/**
* Klasa Osoba koja ce se pisati u fajl i citati iz fajla.
*/
@SuppressWarnings("serial")
public class Osoba implements Serializable { //mora implementirati
Serializable kako bi se mogao sacuvati u fajl
private String ime = "";
private String prezime = "";
public Osoba(String ime, String prezime) {
this.ime = ime;
this.prezime = prezime;
}
public String getIme() {
return ime;
}
public void setIme(String ime) {
this.ime = ime;
}
public String getPrezime() {
return prezime;
}
public void setPrezime(String prezime) {
this.prezime = prezime;
}
@Override
public String toString() {
return "Osoba [ime=" + ime + ", prezime=" + prezime + "]";
}
}
............................................................................................................................
package lekcija4;
import java.util.Scanner;
/**
* Testira metode klase String
*/
public class TestString {
public static void main(String[] args) {
//inicijalizacija stringa
String name = "Scala"; //prvi String objekat
String name_1 = "Scala"; //isti objekat kao prvi, dodeljena mu
samo referenca na postojeci
String name_2 = new String("Scala"); //novi String objekat
char[] nameArray = { 'S', 'c', 'a', 'l', 'a'};
String name_3 = new String(nameArray);
System.out.println(name_3);
//vratice true
if(name==name_1){ //poredi adrese
System.out.println("both name and name_1 is
pointing to same string object");
}
//vratice false
if(name==name_2){ //poredi adrese
System.out.println("both name and name_2 is
pointing to same string object");
}
//vratice true
if(name.equals(name_1)){ //poredi sadrzaj stringova
System.out.println("name and name_1 are equal
String by equals method");
}
//vratice true
if(name.equals(name_2)){ //poredi sadrzaj stringova
System.out.println("name and name_2 are equal
String by equals method");
-
}System.out.println("-------------------------------------");
//Odredjivanje duzine stringa
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
System.out.println("String Length is : " + len);
System.out.println("-------------------------------------");
//Koriscenje Skenera za unos sa tastature, citanje karaktera sa
odredjene pozicije u stringu
String original, reverse = "";
Scanner in = new Scanner(System.in);
System.out.println("Enter a string to reverse");
original = in.nextLine();
in.close();
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
System.out.println("Reverse of entered string is: " + reverse);
System.out.println("-------------------------------------");
//konkatenacija sa metodom concat
String s2 = name.concat(name_2);
System.out.println(s2);
//konkatenacija sa operatorom +
String s3 = name + " " + name_2;
System.out.println(s3);
System.out.println("-------------------------------------");
//testiranje metoda indexOf, lastIndexOf i matches
String str = "Java is best programming language";
if(str.indexOf("Java") != -1){
System.out.println("String contains Java at index :" +
str.indexOf("Java"));
}
if(str.matches("J.*")){
System.out.println("String Starts with J");
}
str ="Do you like Java ME or Java EE";
if(str.lastIndexOf("Java") != -1){
System.out.println("String contains Java lastly at: " +
str.lastIndexOf("Java"));
}
System.out.println("-------------------------------------");
//testiranje substring metode
//vratice deo stringa str od indeksa 0 do 12
String subString = str.substring(0,12);
System.out.println("Substring: " + subString);
System.out.println("-------------------------------------");
String str2 = " String Trim Example ";
System.out.println("Original String :" + str2);
System.out.println("After trim :" + str2.trim());
//zamena karaktera karakterom
String str3 = new String("Welcome to Tutorialspoint.com");
System.out.println("Return Value :" + str3.replace('o', 'T'));
-
//zamena niza karaktera nizom karaktera
String replaceSample = "String replace Example of replacing
Character Sequence";
System.out.println("Return Value :" +
replaceSample.replace("re", "RE"));
//replaceAll(String regex, String replacement)
String replaceSample2 = "String replace Example with
regular expreSsion";
System.out.println("Return Value :" +
replaceSample2.replaceAll("^S","R"));
//replaceFirst(String regex, String replacement)
String replaceSample3 = "String replace Example with
replaceFirst";
System.out.println("Return Value :" +
replaceSample3.replaceFirst("re","RE"));
System.out.println("-------------------------------------");
//testiranje split metode
String assetClasses = "Gold:Stocks:Fixed
Income:Commodity:Interest Rates";
String[] splits = assetClasses.split(":");
System.out.println("splits.size: " + splits.length);
for(String asset: splits){
System.out.println(asset);
}
System.out.println("- - - - - - - - - - - - - - - - - - -");
//testiranje split metode sa specijalnim karakterom |
String assetTrading = "Gold Trading|Stocks Trading|Fixed
Income Trading|Commodity Trading|FX trading";
String[] splits2 = assetTrading.split("\\|"); // two \\ is required
because "\" itself require escaping
for(String trading: splits2){
System.out.println(trading);
}
System.out.println("- - - - - - - - - - - - - - - - - - -");
//testiranje split metode sa specijalnim karakterom .
String smartPhones = "Apple IPhone.HTC Evo3D.Nokia
N9.LG Optimus.Sony Xperia.Samsung Charge";
String[] smartPhonesSplits = smartPhones.split("\\.");
for(String smartPhone: smartPhonesSplits){
System.out.println(smartPhone);
}
System.out.println("-------------------------------------");
//testiranje split metode sa ogranicenjem
String places = "London.Switzerland.Europe.Australia";
String[] placeSplits = places.split("\\.",2);
System.out.println("placeSplits.size: " + placeSplits.length );
for(String contents: placeSplits){
System.out.println(contents);
}
System.out.println("-------------------------------------");
//testitanje formatiranja stringa
float floatVar = 3.6f;
int intVar = 6;
String stringVar = "Sest";
System.out.printf("The value of the float variable is " +
-
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s" + "\n", floatVar, intVar, stringVar);
String fs;
fs = String.format("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
System.out.println(fs);
}
}
package lekcija5;
public class CDDisk {
private String naziv;
private String izvodjac;
private int id;
public CDDisk() {
naziv = "nepoznat";
izvodjac = new String("nepoznat");
id = -1;
}
public CDDisk(String naziv, String izvodjac, int id) {
this.naziv = naziv;
this.izvodjac = izvodjac;
this.id = id;
}
public CDDisk(CDDisk cd) {
this.naziv = cd.naziv;
this.izvodjac = cd.izvodjac;
this.id = cd.id;
}
public String getNaziv() {
return naziv;
}
public void setNaziv(String naziv) {
this.naziv = naziv;
}
public String getIzvodjac() {
return izvodjac;
}
public void setIzvodjac(String izvodjac) {
this.izvodjac = izvodjac;
}
public int getId() {
-
return id;
}
public void setId(int id) {
this.id = id;
}
public boolean equals(Object obj) {
if (obj == null)
return false;
if (this == obj)
return true;
CDDisk d = (CDDisk) obj;
return (naziv.equals(d.naziv) && izvodjac.equals(d.izvodjac)
&& id == d.id);
}
public String toString() {
return "CD[ " + naziv + ", " + izvodjac + ", " + id + " ]";
}
public static void main(String[] args) {
CDDisk d1 = new CDDisk("Novi disk", "Pevac hitova", 3);
CDDisk d2 = new CDDisk("Hitovi", "Pevac", 1);
CDDisk d3 = new CDDisk(d1);
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
if(d1.equals(d2))
System.out.println("Diskovi su jednaki.");
else
System.out.println("Diskovi su razliciti.");
if(d1.equals(d3))
System.out.println("Diskovi su jednaki.");
else
System.out.println("Diskovi su razliciti.");
}
}
............................................................................................................................
package lekcija5;
import java.util.ArrayList; // probati sa LinkedList i Vector
public class XCDStorage {
private ArrayList arhiva;
public XCDStorage() {
arhiva = new ArrayList();
}
public boolean addCD(CDDisk d) {
for(int i = 0; i < arhiva.size(); i++)
if((arhiva.get(i)).getId() == d.getId())
return false;
return arhiva.add(new CDDisk(d.getNaziv(), d.getIzvodjac(),
d.getId()));
}
public CDDisk removeCD(int id) {
for(int i = 0; i < arhiva.size(); i++)
if((arhiva.get(i)).getId() == id)
return arhiva.remove(i);
return null;
}
public CDDisk searchCD(int id) {
for(int i = 0; i < arhiva.size(); i++)
if((arhiva.get(i)).getId() == id)
return arhiva.get(i);
return null;
}
public String toString() {
if(arhiva.isEmpty()) return "U arhivi nema diskova!";
String retVal = "Sadrzaj CD arhive je:\n";
for(int i = 0; i < arhiva.size(); i++)
retVal += arhiva.get(i) + "\n";
//alternativni oblik prethodne for petlje
// for(CDDisk d: arhiva)
// retVal += d + "\n";
-
return retVal;
}
public void clear(){
arhiva.clear();
}
public static void main(String[] args) {
XCDStorage cds = new XCDStorage();
CDDisk d1 = new CDDisk("Stari disk", "Orkestar", 1);
CDDisk d2 = new CDDisk("Novi disk", "Orkestar", 2);
System.out.println(cds);
cds.addCD(d1);
cds.addCD(d2);
System.out.println(cds);
CDDisk removed = cds.removeCD(2);
if(removed != null)
System.out.println("Uklonjen disk: " + removed);
CDDisk nadjen = cds.searchCD(1);
if(nadjen != null)
System.out.println("Nadjen disk: " + nadjen);
}
}
............................................................................................................................
package lekcija5;
import java.util.HashMap; // probati sa LinkedHashMap
public class XCDStorageMap {
private HashMap arhiva;
public XCDStorageMap() {
arhiva = new HashMap();
}
public boolean addCD(CDDisk d) {
if(arhiva.containsKey(d.getId()))
return false;
arhiva.put(d.getId(), new CDDisk(d.getNaziv(),
d.getIzvodjac(), d.getId()));
return true;
}
public CDDisk removeCD(int id) {
return arhiva.remove(id);
}
public CDDisk searchCD(int id) {
return arhiva.get(id);
}
public String toString() {
if(arhiva.isEmpty()) return "U arhivi nema diskova!";
String retVal = "Sadrzaj CD arhive je:\n";
for(CDDisk d: arhiva.values())
retVal += d + "\n";
return retVal;
}
public void clear(){
arhiva.clear();
}
public static void main(String[] args) {
XCDStorageMap cds = new XCDStorageMap();
CDDisk d1 = new CDDisk("Stari disk", "Orkestar", 1);
-
CDDisk d2 = new CDDisk("Novi disk", "Orkestar", 2);
System.out.println(cds);
cds.addCD(d1);
cds.addCD(d2);
System.out.println(cds);
CDDisk removed = cds.removeCD(2);
if(removed != null)
System.out.println("Uklonjen disk: " + removed);
CDDisk nadjen = cds.searchCD(1);
if(nadjen != null)
System.out.println("Nadjen disk: " + nadjen);
}
}
package zadatak1;
/**
* Klasa JSTrougao. Polje a je duzina stranica trougla. Poseduje metode
* za izracunavanje obima i povrsine.
*/
public class JSTrougao {
private double a;
public JSTrougao(double a) {
this.a = a;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getO() {
return a*3;
}
public double getP() {
double s = getO()/2;
return Math.sqrt(s*Math.pow((s-a),3));
}
}
............................................................................................................................
-
package zadatak1;
/**
* Klasa Krug. Polje r je poluprecnik kruga. Poseduje metode
* za izracunavanje obima i povrsine.
*/
public class Krug {
private double r;
public Krug(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public double getO() {
return 2 * Math.PI * r;
}
public double getP() {
return Math.pow(r, 2) * Math.PI;
}
}
............................................................................................................................
package zadatak1;
/**
* Klasa za testiranje Kruga i JSTrougla. Kreira nekoliko objekata i ispisuje
njihovu
* povrsinu i obim.
*/
public class Test {
public static void main(String[] args) {
Krug k = new Krug(5);
System.out.println("Obim kruga je: " + k.getO() +
"\nPovrsina kruga je: " + k.getP());
JSTrougao t = new JSTrougao(3);
System.out.println("Obim trougla je: " + t.getO() +
"\nPovrsina trougla je: " + t.getP());
}
}
-
package zadatak2;
//moramo importovati klase koje nisu u istom paketu
//navodi se puna putanja do tih klasa
import lekcija1.Pravougaonik;
/**
* Testiramo niz pravougaonika. Trazimo pravougaonik sa najvecom
povrsinom.
*/
public class TestNiz {
public static void main(String[] args) {
Pravougaonik p[] = new Pravougaonik[5];
p[0] = new Pravougaonik(10,2);
p[1] = new Pravougaonik(5,8);
p[2] = new Pravougaonik(3,9);
p[3] = new Pravougaonik(7,1);
p[4] = new Pravougaonik(6,11);
double max = p[0].getP();
int pos = 0;
for (int i = 0; i < p.length; i++) {
if (p[i].getP() > max) {
max = p[i].getP();
pos = i;
}
}
System.out.println("Pravougaonik sa najveom povrinom je
pravougaonik(" + p[pos].getA() +"," +
p[pos].getB() + ")");
}
}
package zadatak3;
import lekcija1.Pravougaonik;
import zadatak1.JSTrougao;
/**
* Klasa prizma. Omotac je pravougaonik, baza je jednakostranicni trougao.
* Poseduje metode za izracunavanje povrsine i zapremine.
*/
public class PP3Prizma {
private JSTrougao b;
private Pravougaonik m;
public PP3Prizma(double a, double h) {
this.b = new JSTrougao(a);
this.m = new Pravougaonik(b.getO(), h);
}
public double getA() {
return b.getA();
}
public double getH() {
return m.getB();
}
public double getP() {
return 2 * b.getP() + m.getP();
}
public double getV() {
return b.getP() * getH();
}
public static void main(String[] args) {
PP3Prizma p = new PP3Prizma(2,4);
System.out.println("Povrsina prizme je: " + p.getP());
System.out.println("Zapremina prizme je: " + p.getV());
}
}
-
package zadatak4;
/**
* Definicija apstraktne klase GeometrijskoTelo. Sadrzi dve apstraktne metode
* za izracunavanje zapremine i izracunavanje povrsine tela
*/
public abstract class GeometrijskoTelo {
public abstract double getZapremina();
public abstract double getPovrsina();
}
............................................................................................................................
package zadatak4;
import lekcija2.nasledjivanje.Pravougaonik;
/**
* Klasa Kvadar. Polja a, b i h su stranice kvadra. Poseduje metode
* za izracunavanje zapremine i povrsine. Nasledjuje GeometrijskoTelo
*/
public class Kvadar extends GeometrijskoTelo {
protected Pravougaonik b;
protected Pravougaonik m;
public Kvadar(double a, double b, double h) {
this.b = new Pravougaonik(a, b);
this.m = new Pravougaonik(this.b.getObim(), h);
}
public double getA() {
return b.getA();
}
public double getB() {
return b.getB();
}
public double getH() {
return m.getB();
}
@Override
public double getPovrsina() {
return 2*b.getPovrsina() + m.getPovrsina();
}
@Override
public double getZapremina() {
return b.getPovrsina() * getH();
}
@Override
public String toString() {
return "Kvadar(a=" + b.getA() + ", b=" + b.getB() + ", h=" +
m.getB() + ")";
}
}
............................................................................................................................
-
package zadatak4;
/**
* Klasa Kocka. Nasledjuje klasu Kvadar. Sve stranice su iste.
*/
public class Kocka extends Kvadar{
public Kocka(double a) {
super(a, a, a);
}
@Override
public String toString() {
return "Kocka(a=" + getA() + ")";
}
}
.....................................................................................................................
package zadatak4;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Kvadar kv = new Kvadar(3, 4, 5);
Kocka k = new Kocka(6);
System.out.println(kv);
System.out.println("P = " + kv.getPovrsina());
System.out.println();
System.out.println(k);
System.out.println("P = " + k.getPovrsina());
}
}
package zadatak5;
/**
* Definicija interfejsa GeometrijskoTelo. Sadrzi dve apstraktne metode
* za izracunavanje zapremine i izracunavanje povrsine tela
*/
public interface GeometrijskoTelo {
public double getZapremina();
public double getPovrsina();
}
......................................................................................................................
package zadatak5;
import lekcija2.nasledjivanje.Pravougaonik;
/**
* Klasa Kvadar. Polja a, b i h su stranice kvadra. Poseduje metode
* za izracunavanje zapremine i povrsine. Implementira GeometrijskoTelo
*/
public class Kvadar implements GeometrijskoTelo {
protected Pravougaonik b;
protected Pravougaonik m;
public Kvadar(double a, double b, double h) {
super();
this.b = new Pravougaonik(a, b);
this.m = new Pravougaonik(2*a+2*b, h);
}
public double getA() {
return b.getA();
}
public double getB() {
return b.getB();
}
public double getH() {
return m.getB();
}
-
@Override
public double getPovrsina() {
return 2*b.getPovrsina() + m.getPovrsina();
}
@Override
public double getZapremina() {
return b.getPovrsina() * getH();
}
@Override
public String toString() {
return "Kvadar(a=" + b.getA() + ", b=" + b.getB() + ", h=" +
m.getB() + ")";
}
}
............................................................................................................................
package zadatak5;
import lekcija2.interfejsi.GeometrijskaFigura;
/**
* Klasa Kocka. Nasledjuje klasu Kvadar. Sve stranice su iste.
*/
public class Kocka extends Kvadar {
public Kocka(double a) {
super(a, a, a);
}
@Override
public String toString() {
return "Kocka(a=" + getA() + ")";
}
}
............................................................................................................................
package zadatak5;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Kvadar kv = new Kvadar(3, 4, 5);
Kocka k = new Kocka(6);
System.out.println(kv);
System.out.println("P = " + kv.getPovrsina());
System.out.println();
System.out.println(k);
System.out.println("P = " + k.getPovrsina());
}
}