Ласло Краус |
СИ2ОО2 Први колоквијум 15. 3. 2011. |
|---|
Одговорити концизно (по једна или две реченице) и прецизно на следећа питaња:
а) Када и којим редоследом се извршавају (1) статички (2) нестатички иницијализациони блокови?
б) На које начине се могу користити јавна имена из неког пакета у другом пакету? Навести примере за приступ имену X, које је дефинисно у пакету P, из неког другог пакета?
в) Да ли класа на језику Javа може бити апстрактна, ако ни једна њена метода није апстрактна и зашто?
Саставити на језику Java следећи пакет класа:
naziv.length() + 8 и да се састави текстуални опис у облику назив(тип/идБрој/величина).
S.
F. Текстуални опис, поред општих података за све садржаје, у продужетку садржи текстуалне описе садржаних слика у филму унутар пара заграда [] раздвојених зарезима.
null (индекс изван опсега или празно одабрано место). Може да се одреди укупна величина садржаја у галерији и да се састави текстуални опис галерије који се састоји од текстуалних описа садржаја, један садржај по реду.
(10 поена) Написати на језику Java програм (класу с главном функцијом) који направи једну галерију, ставља у њу неколико садржаја различитог типа и испише на главном излазу садржај галерије и њену укупну величину. Користити константне параметре (не треба ништа учитавати с главног улаза).
// Sadrzaj.java
package galerija;
public abstract class Sadrzaj {
private static int posid = 0;
private int id = ++posid;
private String naziv;
public Sadrzaj(String n) { naziv = n; }
public int id() { return id; }
public abstract char tip();
public int vel() { return naziv.length() + 8; }
public String toString() {
return naziv + "(" + tip() + "/" + id + "/" + vel() + ")";
}
}
// Slika.java
package galerija;
public class Slika extends Sadrzaj {
private int sir, vis;
public Slika(String n, int s, int v) { super(n); sir = s; vis = v; }
public char tip() { return 'S'; }
public int sir() { return sir; }
public int vis() { return vis; }
public int vel() { return super.vel() + 4*sir*vis + 32; }
}
// Film.java
package galerija;
public class Film extends Sadrzaj {
private Slika[] niz;
private int duz = 0;
public Film(String n, int kap) { super(n); niz = new Slika [kap]; }
public char tip() { return 'F'; }
public boolean dodaj(Slika s) {
if (duz==niz.length ||
duz!=0 && (niz[0].sir()!=s.sir() || niz[0].vis()!=s.vis())) return false;
niz[duz++] = s; return true;
}
public int vel() {
int v = super.vel() + 1024;
for (int i = 0; i<duz; i++) v += niz[i].vel();
return v;
}
public String toString() {
String s = super.toString() + "[";
for (int i=0; i<duz; i++) {
if (i>0) s += ",";
s += niz[i];
}
return s + "]";
}
}
// Galerija.java
package galerija;
public class Galerija {
private Sadrzaj[] niz;
public Galerija(int kap) { niz = new Sadrzaj [kap]; }
public boolean stavi(Sadrzaj s, int i) {
if (i<0 || i>=niz.length || niz[i]!=null) return false;
niz[i] = s; return true;
}
public Sadrzaj uzmi(int i) {
if (i<0 || i>=niz.length) return null;
Sadrzaj s = niz[i]; niz[i] = null;
return s;
}
public int vel() {
int v = 0;
for (int i=0; i<niz.length; i++)
if (niz[i] != null) v += niz[i].vel();
return v;
}
public String toString() {
String s = "";
for (int i=0; i<niz.length; i++)
if (niz[i] != null) s += i + ": " + niz[i] + "\n";
return s;
}
}
// Program.java
import galerija.*;
public class Program {
public static void main(String[] args) {
Galerija g = new Galerija(10);
g.stavi(new Slika("Alfa",400,300), 6);
Film f = new Film("Beta", 5);
f.dodaj(new Slika("B1", 200, 150));
f.dodaj(new Slika("B2", 300, 150));
f.dodaj(new Slika("B3", 200, 150));
g.stavi(f, 3);
g.stavi(new Slika("Gama",400,300), 6);
g.stavi(new Slika("Delta",300,250), 8);
System.out.println(g + "\n" + g.vel());
}
}
3: Beta(F/2/241120)[B1(S/3/120042),B3(S/5/120042)]
6: Alfa(S/1/480044)
8: Delta(S/7/300045)
1021209
(⇒ почетак)
Copyright © 2011, Laslo Kraus
Последња ревизија: 16.4.2011.