Professional Documents
Culture Documents
Kolokvij Rješenja
Kolokvij Rješenja
GRUPA A
2. Kreirajte klasu Macke koja ima tri (protected) člana: String ime, int starost i statički član int
broj. Osigurajte konstruktor koji dodjeljuje objektu ime, starost i evidenciju ukupnog broja
generiranih objekata (uvećavanje statičkog člana za 1). Neka imena mačaka budu unaprijed
određena iz skupa imena {“Micka“,“Kiki“,“Bucka“,“Lili“,“Fifi“}, koja se slijedno koriste za svaki
novi kreirani objekt klase. U main metodi kreirajte niz od 10 macaka. Neka starost bude
slučajan broj od 0-120 (starost u mjesecima), te neka se ispisuje ime i broj najstarije mačke
korištenjem metode toString() (metodu toString() implementirati u klasi na odgovarajući
način).
import java.util.Random;
public class Macke {
String imena[]={"Micka", "Lili","Fufi","Zuco","Cica"};
protected String ime;
protected int starost;
protected static int broj;
for(i=0;i<10;i++) {
System.out.println(micke[i].toString());
}
}
}
3. Kreirajte klasu Sijamska koja proširuje klasu Macke i ima dodatni clan int duljinaDlake. Klasa
Sijamska ima nadjačanu metodu toString() u kojoj se ispisuje i duljinaDlake. Osigurati
konstruktor koji inicijalizira vrijednost novog člana klase. Ponovno napisati metodu main u
kojoj se kreira niz od 10 mačaka koje nasumično pripadaju klasama Macke ili Sijamska i ispisati
karakteristike svakog kreiranog objekta.
GRUPA B
public class A {
public A(){
System.out.println("A");
}
public static void main(String [] args){
new D(6);
}
}
class B extends A {
public B(int k){
System.out.println("B "+k);
}
}
class C extends B {
public C(int a){
super(11);
System.out.println("C "+a);
}
}
class D extends C {
public D(int m){
super(5);
System.out.println("D "+m);
}
}
2. Kreirajte klasu Stozer koja ima tri člana: String ime, int broj_clanova i niz char[]
niz_za_ime={'A','B','C','D','E','F','G'}. Osigurajte konstruktor u kojem se objektu dodjeljuje ime
tako da se iz niza niz_za_ime, slučajnim odabirom zamijeni mjesto dva slova (primjerice slova
na mjestima s indeksom 3 i 5 – tako da niz glasi: {'A','B','C','F','E','D','G'}) i zatim se niz pretvori
u string (“ABCFEDG“). Član broj_članova neka se također generira kao slučajan broj od 1-20. U
main metodi kreirajte niz od 10 Stozera, te neka se ispisuje ime onog objekta koji ima najmanji
broj članova korištenjem metode toString() (metodu toString() implementirati u klasi na
odgovarajući način).
import java.util.Random;
public Stozer(){
int b;
Random rnd=new Random();
int a=rnd.nextInt(6);
while((b=rnd.nextInt(6))==a);
char t;
t=niz_za_ime[a];
niz_za_ime[a]=niz_za_ime[b];
niz_za_ime[b]=t;
ime =new String (niz_za_ime);
this.brojClanova=rnd.nextInt(20)+1;
}
public String toString(){
return "Ime: "+ime+" brojClanova: "+brojClanova;
}
public static void main(String[] args){
Stozer []stozeri=new Stozer[10];
int i, index;
for(i=0;i<10;i++){
stozeri[i]=new Stozer();
}
int najmanji=stozeri[0].brojClanova;
index=0;
for(i=1;i<10;i++) {
if (stozeri[i].brojClanova < najmanji) {
najmanji = stozeri[i].brojClanova;
index = i;
}
}
for(i=1;i<10;i++) {
System.out.println(stozeri[i].toString());
}
System.out.println();
System.out.println(stozeri[index].toString());
}
}
3. Kreirajte klasu ZupanijskiStozer koja proširuje klasu Stozer i ima dodatni clan int populacija koja
predstavlja broj stanovnika za koje brigu vodi ZupanijskiStozer. Nadjačati metodu toString() u
kojoj se ispisuje i broj populacija. Osigurati konstruktor koji inicijalizira vrijednost novog člana
klase. Ponovno napisati metodu main u kojoj se kreira niz od 10 objekata koje nasumično
pripadaju klasama Stozer ili ZupanijskiStozer i ispisati karakteristike svakog kreiranog objekta.
}
public String toString(){
return "Ime: "+ime+" brojClanova: "+brojClanova+" populacija:
"+this.populacija;
}
}
GRUPA C
2. Kreirajte klasu Pas koja ima (protected) član: String vrsta. Osigurajte konstruktor koji dodjeljuje
objektu vrstu iz unaprijed definiranog skupa imena {“Retriver“, “JackRussel“, “Buldog“,
“Jazavcar“, “Spic“, “Ovcar“}. Način odabira imena definirati proizvoljno (slijedno ili nasumičan
odabir). U main metodi kreirajte niz od 10 objekata klase Pas, te neka se ispisuje vrsta
korištenjem metode toString() (metodu toString() implementirati u klasi na odgovarajući
način).
3.
import java.util.Random;
import java.util.Scanner;
public class Pas {
public Pas() {
int indeks = rnd.nextInt(6);
this.vrsta = vrste[indeks];
}
4. Kreirajte klasu Retriver koja proširuje klasu Pas i ima dodatne članove int starost i String ime.
Klasa Retriver ima nadjačanu metodu toString() u kojoj se ispisuje ime i starost psa. Osigurati
konstruktor koji inicijalizira vrijednost novih članova klase. Ponovno napisati metodu main u
kojoj se inicijalizira 10 objekata klase Retriver tako da korisnik unosi podatke za starost i ime
objekata koji pripadaju klasi Retriver, te ispisati karakteristike svih kreiranih objekata, ali
redom, od najstarijeg do najmlađeg.
import java.util.Random;
import java.util.Scanner;
public class Pas {
private String[] vrste = {"Retriver", "JackRusser", "Buldog",
"Jazavcar", "Spic", "Ovcar"};
protected String vrsta;
Random rnd = new Random();
public Pas() {
int indeks = rnd.nextInt(6);
this.vrsta = vrste[indeks];
}
}
}
class Retriver extends Pas{
public String ime;
public int starost;
Scanner sc=new Scanner(System.in);
public Retriver(){
this.vrsta="Retriver";
System.out.println("Upisite ime retrivera");
this.ime=sc.nextLine();
System.out.println("Upisite starost retrivera");
this.starost=sc.nextInt();
}
public String toString(){
return "Retriver imena "+this.ime+" starost "+this.starost;
}
}
OOP
GRUPA D
2. Kreirajte klasu Voce koja ima dva člana: String ime, niz char[] vitamini. Osigurajte konstruktor
u kojem se objektu dodjeljuje ime preko parametra, a članovi niza vitamini određuju se
nasumičnim odabirom tri člana (vitamini ne smiju biti isti) iz unaprijed definiranog skupa
vitamina {'A','B','C','F','E','D','G'}. U main metodi kreirajte niz od 10 Voca, te neka se ispisuju
imena onih objekata koji imaju vitamine A i E korištenjem metode toString() (metodu
toString() implementirati u klasi na odgovarajući način).
import java.util.Random;
public class Voce {
private char[] vit = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
protected String ime;
protected char[] vitamini=new char[3];
Random rnd = new Random();
}
public String toString(){
return "Ime: "+this.ime+" ima
vitamine:"+this.vitamini[0]+this.vitamini[1]+this.vitamini[2];
}
public static void main(String[] args){
// imena[] uvedeno da se izbjegne upisivanje
String imena[]={"Jabuka","Kruska","Sljiva"};
Random rnd=new Random();
int i;
for(i=0;i<10;i++) {
int flag_a=0;
int flag_e=0;
Voce v = new Voce(imena[rnd.nextInt(3)]);
for(int k=0;k<3;k++) {
if (v.vitamini[k] == 'A') flag_a = 1;
if (v.vitamini[k] == 'E') flag_e = 1;
}
if (flag_a==1 && flag_e==1)
System.out.println(v.toString());
}
}
}
3. Kreirajte klasu Jabuka koja proširuje klasu Voce i ima svoje članove String ime i char niz[]
vitamini sastavljen od 6 nasumično odabranih vitamina iz niza. Osigurati odgovarajući
konstruktor za kreiranje Jabuka. Ponovno napisati metodu main u kojoj se kreira niz od 10
objekata koje nasumično pripadaju klasama Voce ili Jabuka, te ispisati karakteristike kreiranih
objekata.
import java.util.Random;
import java.lang.StringBuilder;
public class Voce {
protected char[] vit = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
protected String ime;
protected char[] vitamini=new char[6];
Random rnd = new Random();
}
public String toString(){
return "Ime: "+this.ime+" ima vitamine:
"+this.vitamini[0]+this.vitamini[1]+this.vitamini[2];
}
public static void main(String[] args){
String imena[]={"Jabuka","Kruska","Sljiva"};
Random rnd=new Random();
Voce [] v=new Voce[30];
int i;
for(i=0;i<30;i++) {
int flag_a=0;
int flag_e=0;
int broj_vitamina;
String str=imena[rnd.nextInt(3)];
if (str=="Jabuka"){
v[i] = new Jabuka();
broj_vitamina=6;
}
else {
v[i] = new Voce(str);
broj_vitamina=3;
}
for(int k=0;k<broj_vitamina;k++) {
if (v[i].vitamini[k] == 'A') flag_a = 1;
if (v[i].vitamini[k] == 'E') flag_e = 1;
}
if (flag_a==1 && flag_e==1)
System.out.println(v[i].toString());
}
}
}
class Jabuka extends Voce{
public Jabuka() {
super("Jabuka");
int i,j;
int kraj=7;
int []pocetni={0,1,2,3,4,5,6};
int []p=new int[7];
for(i=0;i<6;i++){
p[i]=rnd.nextInt(kraj);
vitamini[i] = vit[pocetni[p[i]]];
// redukcija niza pocetni kako se izabrani vitamini ne bi
ponovno birali
for(j=p[i];j<kraj-1;j++)
pocetni[j] = pocetni[j + 1];
kraj=kraj-1;
}
public String toString(){
StringBuilder sb=new StringBuilder("Ime:" + this.ime +" ima
vitamine: ");
int i;
for(i=0;i<6;i++)
sb.append(this.vitamini[i]);
return sb.toString();
}
}