Você está na página 1de 3

Obs: Classes Partido, Vice e Vereador já estão prontas ver página 2

1. Faça uma classe abstrata Candidato com a seguinte especificação

Atributos
String nome;
Partido partido;
int numVoto;
Métodos
public Candidato(String nome_,Partido partido_)// Defina os atributos com base nos parâmetros passados
public Partido getPartido()
public String getNome()
public int getNumVoto()
public void icrementaVoto()//Incrementa o atributo numVoto
public abstract String getInformacoesEspecificas();
public String toString()

2. Faça uma classe Prefeito que herda da classe Candidato


Atributo
Candidato vice;
Métodos
public Prefeito(String nome_, Partido partido_, Candidato vice_)//// Defina os atributos com base nos parâmetros
passados (obs Use o método construtor da superclasse)
public Candidato getVice()
public String getInformacoesEspecificas() \\ Saída: Candidato a Prefeito com o Vice:______

3. Complete o código da classe Eleicao

public class Eleicao {


private Partido pt,psdb,pmdb;
public Eleicao(){
// Defina os atributos, criando (instanciado) três objetos
}
public Partido getPartido(int tipo){
// Retornar os partidos com base no tipo
}
public void voto(Candidato prefeito,int partido){
prefeito.icrementaVoto();
getPartido(partido).icrementaVoto();
}
public void voto(Candidato prefeito,Candidato vereador){
prefeito.icrementaVoto();
vereador.icrementaVoto();

}
public String apuracaoVereador(Candidato c){
// Implementação com base no main
}
public String apuracaoPrefeito(Candidato c){
return c.toString()+ " Votos:"+c.getNumVoto();
}
public static void main(String args[]){
Eleicao eleicao = new Eleicao();

Candidato viceA = new Vice("ViceA",eleicao.getPartido(Partido.PT));


Candidato prefeitoA = new Prefeito("PrefeitoA",eleicao.getPartido(Partido.PT),viceA);
Candidato vereadorA1 = new Vereador("VereadorA1",eleicao.getPartido(Partido.PT));
Candidato vereadorA2 = new Vereador("VereadorA2",eleicao.getPartido(Partido.PT));

Candidato viceB = new Vice("VB",eleicao.getPartido(Partido.PMDB));


Candidato prefeitoB = new Prefeito("B",eleicao.getPartido(Partido.PSDB),viceB);
Candidato vereadorB1 = new Vereador("VereadorB1",eleicao.getPartido(Partido.PMDB));
Candidato vereadorB2 = new Vereador("VereadorB2",eleicao.getPartido(Partido.PSDB));

eleicao.voto(prefeitoA,vereadorA1); eleicao.voto(prefeitoA,vereadorA1);
eleicao.voto(prefeitoA,Partido.PT); eleicao.voto(prefeitoA,vereadorB1);
eleicao.voto(prefeitoB,vereadorA2); eleicao.voto(prefeitoB,vereadorB1);
eleicao.voto(prefeitoB,Partido.PMDB); eleicao.voto(prefeitoB,Partido.PMDB);
eleicao.voto(prefeitoA,vereadorB1);
System.out.println(eleicao.apuracaoPrefeito(prefeitoA));
System.out.println(eleicao.apuracaoPrefeito(prefeitoB));
System.out.println(eleicao.apuracaoVereador(vereadorA1));
System.out.println(eleicao.apuracaoVereador(vereadorA2));
System.out.println(eleicao.apuracaoVereador(vereadorB1));
System.out.println(eleicao.apuracaoVereador(vereadorB2));
}
}

4. Crie uma instância da classe Prefeito sendo que a referência seja do tipo Candidato. Por fim, imprima o nome
do vice a prefeito.

public class Vereador extends Candidato{


public Vereador(String nome_,Partido partido_){
super(nome_,partido_);
}
public String getInformacoesEspecificas(){
return " Candidato a Vereador";
}
}
public class Vice extends Candidato{
public Vice(String nome_,Partido partido_){
super(nome_,partido_);
}
public String getInformacoesEspecificas(){
return " Candidato a Vice";
}
}

public class Partido {

public static final int PT=1;


public static final int PSDB=2;
public static final int PMDB=3;
private int tipo; private int numVoto;

public Partido(int tipo_){


this.tipo = tipo_;
this.numVoto =0;
}
public int getTipo(){
return this.tipo;
}
public void icrementaVoto(){
this.numVoto++;
}
public int getNumVoto(){
return this.numVoto;
}
public String getSiglaPartido(){
if(tipo==Partido.PT) return "PT";
if (tipo==Partido.PMDB) return "PMDB";
if (tipo ==Partido.PSDB) return "PSDB";
return "";
}
}

Resultado Esperado

Candidato: PrefeitoA Partido:PT Candidato a Prefeito com o Vice:ViceA Votos:5


Candidato:B Partido:PSDB Candidato a Prefeito com o Vice:ViceA Votos:4
Candidato:VereadorA1 Partido:PT Candidato a Vereador Votos:3
Candidato:VereadorA2 Partido:PT Candidato a Vereador Votos:2
Candidato:VereadorB1 Partido:PSDB Candidato a Vereador Votos:5
Candidato:VereadorB2 Partido:PSDB Candidato a Vereador Votos:2

Você também pode gostar