olá, qual seria o melhor jeito para eu exibir todos os dados no Main? alguém poderia ajudar por favor
/**
ContaEnergia
*/
public class ContaEnergia {
private String data, nomeConsumidor;
private int numInstalacao, quantidade;
private boolean paga = true;
private int totalConta;
public ContaEnergia (String data, int numInstalacao, String nomeConsumidor, int quantidade){
this.data = data;
this.numInstalacao = numInstalacao;
this.nomeConsumidor = nomeConsumidor;
this.quantidade = quantidade;
}
public String getData() {
return data;
}
public int getNumInstalacao() {
return numInstalacao;
}
public String getNomeConsumidor() {
return nomeConsumidor;
}
public int getQuantidade() {
return quantidade;
}
public boolean isPaga() {
return paga;
}
public void setPaga(boolean paga) {
this.paga = paga;
}
public float totalConta(float imposto, float valorKw) {
return imposto * valorKw;
}
public String exibir(){
return numInstalacao + ": " + data + " : " + nomeConsumidor + " : " + quantidade + " - " + paga;
}
}
/>
<
import java.util.*;
public class GerenciaContaEnergia {
public ArrayList<ContaEnergia> conta = new ArrayList<ContaEnergia>();
public void cadastrarConta(ContaEnergia c) {
this.conta.add(c);
}
public boolean removerConta(int numInstalacao, String data) {
boolean status = this.conta.remove(buscarConta(numInstalacao, data));
if(status) {
System.out.println("Conta removida");
}else {
System.out.println("Conta não encontada");
}
return status;
}
public String listarTodas() {
StringBuffer sb = new StringBuffer();
for (ContaEnergia contaEnergia : conta) {
sb.append(contaEnergia.exibir());
sb.append(";");
}
if(sb.toString().equals("")) {
sb.append("Nenhuma conta cadastrada.");
}
return sb.toString();
}
public String buscarContas(int numInstalacao) {
StringBuffer sb = new StringBuffer();
for (ContaEnergia contaEnergia : conta) {
if(contaEnergia.getNumInstalacao() == numInstalacao) {
sb.append(contaEnergia.getData());
sb.append(";");
}
}
if(sb.toString().equals("")) {
sb.append("Nenhuma conta encontrada.");
}
return sb.toString();
}
public String listarContasNaoPagas() {
StringBuffer sb = new StringBuffer();
for (ContaEnergia contaEnergia : conta) {
if(contaEnergia.isPaga() == false) {
sb.append(contaEnergia.getNumInstalacao());
sb.append("-");
sb.append(contaEnergia.getData());
sb.append(";");
}
}
if(sb.toString().equals("")) {
sb.append("Nenhuma conta encontrada.");
}
return sb.toString();
}
public ContaEnergia buscarConta(int numInstalacao, String data) {
for (int i = 0; i < conta.size(); i++) {
if (numInstalacao == conta.get(i).getNumInstalacao() && data.equals(conta.get(i).getData())) {
return conta.get(i);
}
}
return null;
}
public boolean pagarConta(int numInstalacao, String data) {
try {
buscarConta(numInstalacao, data).setPaga(true);
return true;
}catch (NullPointerException e) {
System.out.println("Conta nao encontrada");
}
return false;
}
}
Antes de te responder vou esperar tu usar a opção </> da caixa de texto para formatar o código.
Observação 1: use nomes significativos para as variáveis, nomes de métodos, classes, etc.
Observação 2: o método que totalizava o valor da conta só calculava o valor do imposto, não o total da conta.
Logo, eu fiz algumas alterações no seu código:
1 - ContaEnergia
/*
* ContaEnergia
*/
public class ContaEnergia {
private int numeroInstalacao;
private String dataLeitura;
private String nomeConsumidor;
private float consumo;
private boolean paga;
private float totalConta;
/*public ContaEnergia (String data, int numInstalacao, String nomeConsumidor, int quantidade){
this.data = data;
this.numInstalacao = numInstalacao;
this.nomeConsumidor = nomeConsumidor;
this.quantidade = quantidade;
}*/
public ContaEnergia(){
setPaga(false);
}
public void setDataLeitura(String dataLeitura){
this.dataLeitura = dataLeitura;
}
public String getDataLeitura(){
return dataLeitura;
}
public void setNumeroInstalacao(int numeroInstalacao){
this.numeroInstalacao = numeroInstalacao;
}
public int getNumeroInstalacao(){
return numeroInstalacao;
}
public void setNomeConsumidor(String nomeConsumidor){
this.nomeConsumidor = nomeConsumidor;
}
public String getNomeConsumidor(){
return nomeConsumidor;
}
public void setConsumo(float consumo){
this.consumo = consumo;
}
public float getConsumo(){
return consumo;
}
public void setPaga(boolean paga){
this.paga = paga;
}
public boolean isPaga(){
return paga;
}
public void setTotalConta(float taxa, float valorKWatt, float consumokWatt){
this.totalConta = (taxa * consumokWatt) + (valorKWatt * consumokWatt);
}
public float getTotalConta(){
return totalConta;
}
public String gerarFatura(){
return "Instalação: " + getNumeroInstalacao()
+ "\nData de leitura: " + getDataLeitura()
+ "\nConsumidor: " + getNomeConsumidor()
+ "\nConsumo: " + getConsumo() + " kW"
+ "\nTotal: R$ " + getTotalConta()
+ "\nSituação: " + (isPaga() ? "paga" : "em aberto");
}
}
2 - GerenciaContaEnergia
import java.util.List;
import java.util.ArrayList;
public class GerenciaContaEnergia {
public List<ContaEnergia> contas = new ArrayList<ContaEnergia>();
public void cadastrarConta(ContaEnergia contaEnergia){
this.contas.add(contaEnergia);
}
public boolean removerConta(int numInstalacao, String data){
boolean status = this.contas.remove(buscarConta(numInstalacao, data));
if(status){
System.out.println("Conta removida");
}else {
System.out.println("Conta não encontada");
}
return status;
}
public String listarContas(){
StringBuffer stringBuffer = new StringBuffer();
for(ContaEnergia contaEnergia : contas){
stringBuffer.append(contaEnergia.gerarFatura());
stringBuffer.append("\n\n");
}
if(stringBuffer.toString().equals(""))
stringBuffer.append("Nenhuma conta cadastrada!");
return stringBuffer.toString();
}
public String buscarContas(int numeroInstalacao){
StringBuffer stringBuffer = new StringBuffer();
for(ContaEnergia contaEnergia : contas){
if(contaEnergia.getNumeroInstalacao() == numeroInstalacao){
stringBuffer.append(contaEnergia.getDataLeitura());
stringBuffer.append(";");
}
}
if(stringBuffer.toString().equals(""))
stringBuffer.append("Nenhuma conta encontrada!");
return stringBuffer.toString();
}
public String listarContasNaoPagas(){
StringBuffer stringBuffer = new StringBuffer();
for (ContaEnergia contaEnergia : contas){
if(contaEnergia.isPaga() == false){
stringBuffer.append(contaEnergia.getNumeroInstalacao());
stringBuffer.append("-");
stringBuffer.append(contaEnergia.getDataLeitura());
stringBuffer.append(";");
}
}
if(stringBuffer.toString().equals("")){
stringBuffer.append("Nenhuma conta encontrada!");
}
return stringBuffer.toString();
}
public ContaEnergia buscarConta(int numeroInstalacao, String data){
for(int i = 0; i < contas.size(); i++){
if(numeroInstalacao == contas.get(i).getNumeroInstalacao()
&& data.equals(contas.get(i).getDataLeitura())){
return contas.get(i);
}
}
return null;
}
public boolean pagarConta(int numInstalacao, String data){
try{
buscarConta(numInstalacao, data).setPaga(true);
return true;
}catch(NullPointerException e){
System.out.println("Conta nao encontrada");
}
return false;
}
public void exibirContas(String fatura){
System.out.println(fatura);
}
}
3 - FaturamentoConta (Main)
public class FaturamentoConta {
private static final float TAXA_IMPOSTO = 0.0741f;
private static final float VALOR_POR_KW = 1.068f;
public static void main(String[] args){
ContaEnergia contaEnergia1 = new ContaEnergia();
contaEnergia1.setNumeroInstalacao(419);
contaEnergia1.setDataLeitura("09/11/2019");
contaEnergia1.setNomeConsumidor("Fulano Beltrano de Sicrano");
contaEnergia1.setConsumo(178.63f);
contaEnergia1.setPaga(true);
contaEnergia1.setTotalConta(TAXA_IMPOSTO, VALOR_POR_KW, contaEnergia1.getConsumo());
ContaEnergia contaEnergia2 = new ContaEnergia();
contaEnergia2.setNumeroInstalacao(2096);
contaEnergia2.setDataLeitura("05/11/2019");
contaEnergia2.setNomeConsumidor("Beltrano Fulano de Sicrano");
contaEnergia2.setConsumo(56.11f);
contaEnergia2.setPaga(true);
contaEnergia2.setTotalConta(TAXA_IMPOSTO, VALOR_POR_KW, contaEnergia2.getConsumo());
GerenciaContaEnergia gerenciaContaEnergia = new GerenciaContaEnergia();
gerenciaContaEnergia.cadastrarConta(contaEnergia1);
gerenciaContaEnergia.cadastrarConta(contaEnergia2);
String listaDeContas = gerenciaContaEnergia.listarContas();
gerenciaContaEnergia.exibirContas(listaDeContas);
}
}
Rodando…

1 curtida