Unaprijed se izvinjavam zbog dugog pitanja.
Imam problem sa Javom i ako neko moze da mi pojasni/pokaze primjer kako da uradim, bilo bi super.
Imam sledece klase:
Main.java
Klub.java
Clan.java
SponsorClan.java je podklasa Clan.java
RegularniClan.java je podklasa Clan.java
DozivotniClan.java je podklasa SponsorClan.java
Clan.java ima sledece atribute: clanskiBroj, ime, adresa
RegularniClan.java ima sledece atribute: godisnjaClanarina=100, uclanjenje=20
SponsorClan.java ima sledece atribute: godisnjaClanarina=5, ali nema uclanjenje
DozivotniClan.java ima sledece atribute: uclanjenje= 3x godisnjaClanarina u RegularniClan.java i nema godisnjuClanarinu
RegularniClan se razlikuje od SponsorClan po tome sto ima pet razlicitih bodova, koji daju odredjene privilegije (nije bitno sta i kako za ovaj dio)
U sustini ja treba da dodam razlicite clanove u Klub i onda da ih upisem u fajl sa PrintWriter ili da ih procitam sa Scanner.
Problem je sto clanovi imaju razlicite atribute npr. Regularni clan ima pet razlicitih bodova, a Sponsor clan nema.
Ne mogu da citam fajl koji izgleda ovako:
1234 Ime1 Adresa1 bod1 bod2 bod3 bod4 bod5
5678 Ime2 Adresa2
Da li je pravilno da imam upisiClan metod u svakoj klasi za svakog clana posebno ili da to radim iz Klub klase?
I ne znam kako da dodam te bodove za RegularniClan.
Mozda je moja logika/postavka pogresna nemam pojma, ali nikako ne mogu da rijesim.
Ovako izgleda kod:
Clan
Code:
public class Clan {
private int clanskiBroj;
private String ime;
private String adresa;
public Clan(int mClanskiBroj, String mIme, String mAdresa) {
clanskiBroj = mClanskiBroj;
ime = mIme;
adresa = mAdresa;
}
public void setIme(String tIme) {
ime = tIme;
}
public String getIme() {
return ime;
}
public void setClanAdresa(String tAdresa) {
adresa = tAdresa;
}
public String getClanAdresa() {
return adresa;
}
public void setClanskiBroj(int tClanskiBroj) {
clanskiBroj = tClanskiBroj;
}
public int getClanskiBroj() {
return clanskiBroj;
}
}
public class Clan {
private int clanskiBroj;
private String ime;
private String adresa;
public Clan(int mClanskiBroj, String mIme, String mAdresa) {
clanskiBroj = mClanskiBroj;
ime = mIme;
adresa = mAdresa;
}
public void setIme(String tIme) {
ime = tIme;
}
public String getIme() {
return ime;
}
public void setClanAdresa(String tAdresa) {
adresa = tAdresa;
}
public String getClanAdresa() {
return adresa;
}
public void setClanskiBroj(int tClanskiBroj) {
clanskiBroj = tClanskiBroj;
}
public int getClanskiBroj() {
return clanskiBroj;
}
}
SponsorClan
Code:
public class SponsorClan extends Clan {
private double godisnjaClanarina;
/**
*
*/
public SponsorClan(int clanskiBroj, String ime, String adresa) {
super(clanskiBroj, ime, adresa);
godisnjaClanarina = 5;
}
public double getGodisnjaClanarina() {
return godisnjaClanarina;
}
}
public class SponsorClan extends Clan {
private double godisnjaClanarina;
/**
*
*/
public SponsorClan(int clanskiBroj, String ime, String adresa) {
super(clanskiBroj, ime, adresa);
godisnjaClanarina = 5;
}
public double getGodisnjaClanarina() {
return godisnjaClanarina;
}
}
RegularniClan
Code:
public class RegularniClan extends Clan {
private double godisnjaClanarina;
private double uclanjenje;
/**
*
*/
public RegularniClan(int clanskiBroj, String ime, String adresa) {
super(clanskiBroj, ime, adresa);
godisnjaClanarina = 100;
uclanjenje = 20;
}
public double getGodisnjaClanarina() {
return godisnjaClanarina;
}
public double getUclanjenje() {
return uclanjenje;
}
}
public class RegularniClan extends Clan {
private double godisnjaClanarina;
private double uclanjenje;
/**
*
*/
public RegularniClan(int clanskiBroj, String ime, String adresa) {
super(clanskiBroj, ime, adresa);
godisnjaClanarina = 100;
uclanjenje = 20;
}
public double getGodisnjaClanarina() {
return godisnjaClanarina;
}
public double getUclanjenje() {
return uclanjenje;
}
}
DozivotniClan
Code:
public class DozivotniClan extends RegularniClan {
private double dUclanjenje;
/**
*
*/
public DozivotniClan(int clanskiBroj, String ime, String adresa) {
super(clanskiBroj, ime, adresa);
dUclanjenje = super.getUclanjenje()*3;
}
public double getUclanjenje() {
return dUclanjenje;
}
}
public class DozivotniClan extends RegularniClan {
private double dUclanjenje;
/**
*
*/
public DozivotniClan(int clanskiBroj, String ime, String adresa) {
super(clanskiBroj, ime, adresa);
dUclanjenje = super.getUclanjenje()*3;
}
public double getUclanjenje() {
return dUclanjenje;
}
}
Klub
Code:
public class Klub {
private ArrayList<Clan> clanovi;
private ArrayList scores;
private File fajl = new File("lista.txt");
Scanner input;
public Klub() {
clanovi = new ArrayList<Clan>();
}
public void addClan(Clan mojClan) {
clanovi.add(mojClan);
}
}
public class Klub {
private ArrayList<Clan> clanovi;
private ArrayList scores;
private File fajl = new File("lista.txt");
Scanner input;
public Klub() {
clanovi = new ArrayList<Clan>();
}
public void addClan(Clan mojClan) {
clanovi.add(mojClan);
}
}
Main
Code:
public class Main {
static Klub kl1 = new Klub();
public Main() {
}
public static void main(String[] args) throws Exception {
RegularniClan rc1 = new RegularniClan("1234", "Ime", "Adresa");
kl1.addClan(rc1);
SponsorClan sc1 = new SponsorClan("5678", "Ime2", "Adresa2");
kl1.addClan(sc1);
DozivotniClan dc1 = new DozivotniClan("9876", "Ime3", "Adresa3");
kl1.addClan(dc1);
}
}
public class Main {
static Klub kl1 = new Klub();
public Main() {
}
public static void main(String[] args) throws Exception {
RegularniClan rc1 = new RegularniClan("1234", "Ime", "Adresa");
kl1.addClan(rc1);
SponsorClan sc1 = new SponsorClan("5678", "Ime2", "Adresa2");
kl1.addClan(sc1);
DozivotniClan dc1 = new DozivotniClan("9876", "Ime3", "Adresa3");
kl1.addClan(dc1);
}
}