Advertisement
sdee3

OOP - Vezba6

Apr 27th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.10 KB | None | 0 0
  1. //Program.java
  2.  
  3. import java.util.ArrayList;
  4.  
  5. abstract class Osoba{
  6.     String ime;
  7.     String prezime;
  8.  
  9.     public abstract String toString();
  10.  
  11.     Osoba(String ime, String prezime){
  12.         this.ime = ime;
  13.         this.prezime = prezime;
  14.     }
  15. }
  16.  
  17. class Student extends Osoba{
  18.     private double prosek;
  19.  
  20.     Student(String ime, String prezime, double prosek) {
  21.         super(ime, prezime);
  22.         this.prosek = prosek;
  23.     }
  24.  
  25.     ArrayList<Student> filtrirajStudente(Osoba[] osobe){
  26.  
  27.         ArrayList<Student> studenti = new ArrayList<>();
  28.  
  29.         for(Osoba osoba : osobe)
  30.             if(osoba instanceof Student)
  31.                 studenti.add((Student) osoba);
  32.  
  33.         return studenti;
  34.     }
  35.  
  36.     @Override
  37.     public String toString() {
  38.         return "Student: " + ime + " " + prezime + " - prosek: " + prosek;
  39.     }
  40.  
  41.     Student najveciProsek(ArrayList<Student> lista){
  42.         Student s = lista.get(0);
  43.  
  44.         for (Student student : lista) {
  45.             if (s.getProsek() < student.getProsek())
  46.                 s = student;
  47.         }
  48.         return s;
  49.     }
  50.  
  51.     private double getProsek(){
  52.         return prosek;
  53.     }
  54. }
  55.  
  56. class Nastavnik extends Osoba{
  57.     private String zvanje;
  58.  
  59.     Nastavnik(String ime, String prezime, String zvanje) {
  60.         super(ime, prezime);
  61.         this.zvanje = zvanje;
  62.     }
  63.  
  64.     @Override
  65.     public String toString() {
  66.         return "Nastavnik: " + zvanje + " " + ime + " " + prezime;
  67.     }
  68. }
  69.  
  70. public class Program {
  71.     public static void main(String[] args) {
  72.  
  73.         //Ne moze se inicijalizovati objekat apstraktne klase, ali ovo moze:
  74.         //Polimorfizam: u objekat nadklase ide objekat nadklase
  75.         /*
  76.             Osoba osoba = new Student("Pera", "Petrović", 7.68);
  77.             System.out.println(osoba.podaci());
  78.         */
  79.         //Posledica:
  80.         //osoba.getProsek(); <- cannot resolve method getProsek()
  81.  
  82.         Osoba osobe[] = {
  83.                 new Nastavnik("Vojislav", "Šešelj", "dr"),
  84.                 new Student("Milan", "Ivanović", 8.00),
  85.                 new Student("Sanja", "Perić", 9.35),
  86.                 new Student("Uroš", "Jovović", 9.82),
  87.                 new Student("Nikola", "Stefanović", 6.54)
  88.         };
  89.  
  90.         ArrayList<Student> listaStudenata = new ArrayList<>();
  91.  
  92.         ArrayList<Student> studenti = new ArrayList<>();
  93.  
  94.         Student s = new Student("", "", 0);
  95.         studenti = s.filtrirajStudente(osobe);
  96.  
  97.         /*
  98.         for(Osoba o : osobe){
  99.            //Bitno za projekat (muzicka prodavnica):
  100.             if(o instanceof Student){
  101.                 System.out.println("O je Student.");
  102.                 Student s = (Student)o;
  103.                 //Pristup metodama podklase:
  104.                 System.out.println(s.getProsek());
  105.                 System.out.println("Klasa: " + s.getClass());
  106.             }
  107.             System.out.println(o);
  108.         }
  109.         */
  110.  
  111.         studenti.forEach(System.out::println);
  112.  
  113.         Student tmp = studenti.get(0);
  114.  
  115.         System.out.println("Student sa najboljim prosekom: " + tmp.najveciProsek(studenti));
  116.  
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement