Minhas Classes estão dentro do padrão de OO?
Bom estou desenvolvendo um programa relacionado a Pizzaria, é bem básico sem interface gráfica nem nada do tipo... Como estou começando com Java e tentando aprender Orientação a Objeto, resolvi postar minhas classes para que vocês darem uma analisada e dizer se esta muito longe da idéia de OO e se possível dizer oque posso melhorar...
Obs.: Não precisam perder tempo vendo linha por linha, se possível só de uma olhada de forma geral. E a funcionalidade do programa não me preocupa no momento, mesmo estando muito básico, feio, poderia ter muito mais coisas porém minha dúvida é quanto a OO.
Classe Main:
package diskpizza;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
public class Main {
//ArrayList de MotoBoys
public static List<MotoBoys> listaMotoBoys = new ArrayList<MotoBoys>();
//ArrayList de Pedidos
public static List<Pedido> listaDePedidos = new ArrayList<Pedido>();
//Instânciando Objeto pizzaria
public static DiskPizza pizzaria = new DiskPizza();
public static void main(String[] args){
int opcao = 0;
JOptionPane.showMessageDialog(null, "Cadastre sua Pizzaria!");
//Invocando método para Cadastrar Pizzaria
pizzaria.setCadastrarPizzaria();
do{
opcao = Integer.parseInt(JOptionPane.showInputDialog("Pizzaria "+pizzaria.getMostraRzSocial()
+".\n\n1 - Cadastrar Pedido.\n2 - Cadastrar MotoBoys.\n3 - Relatar MotoBoys.\n"
+ "4 - Relatar DiskPizza.\n5 - Relatar Pedidos.\n0 - Fechar Programa."));
switch(opcao){
case 1:
Pedido.setGerarPedido();break;
case 2:
MotoBoys.setCadastrarMotoBoy();break;
case 3:
MotoBoys.getRelatarMotoBoys();break;
case 4:
pizzaria.getRelatarPizzaria();break;
case 5:
Pedido.getMostrarPedido();break;
case 0:
JOptionPane.showMessageDialog(null, "Total de Pizzas entregues foi: "
+pizzaria.getMostraTotalPizzas()+"\nTotal de MotoBoys é: "
+pizzaria.getMostraQtdeMotoBoy()+"\n");
JOptionPane.showMessageDialog(null, "Programa Encerrado!");
}
}while(opcao != 0);
}
}
Classe DiskPizza:
package diskpizza;
import javax.swing.JOptionPane;
public class DiskPizza {
private String CNPJ;
private String razaoSocial;
private int qtdMotoBoys;
private int totalDePizzas;
public void setCadastrarPizzaria(){
razaoSocial = JOptionPane.showInputDialog("Nome da Pizzaria: ");
CNPJ = JOptionPane.showInputDialog("CNPJ da Pizzaria: ");
}
//Incrementa em 1 o Total de Pizzas
public void setIncrementaTotalPizza(){
totalDePizzas += 1;
}
//Incrementa em 1 a quantidade de MotoBoy
public void setIncrementaMotoBoy(){
qtdMotoBoys += 1;
}
//Mostra Razão Social da Pizzaria
public String getMostraRzSocial(){
return razaoSocial;
}
//Mostra Total de Pizzas
public int getMostraTotalPizzas(){
return totalDePizzas;
}
//Mostra a quantidade de MotoBoy
public int getMostraQtdeMotoBoy(){
return qtdMotoBoys;
}
//Mostra os valores dos atributos da pizzaria
public void getRelatarPizzaria(){
JOptionPane.showMessageDialog(null, "Razão Social: "+razaoSocial+"\nCNPJ: "+CNPJ
+"\nQuantidade de MotoBoys: "+qtdMotoBoys
+"\nTotal de Pizzas Entregues: "+totalDePizzas);
}
}
Classe MotoBoys:
package diskpizza;
import javax.swing.JOptionPane;
public class MotoBoys {
private String nome;
private String rg;
private String rfid;
//Verifica se RG digitado existe.
public static boolean isVerificaRG(String RG){
for(int i = 0; i < Main.listaMotoBoys.size(); i++){
if(RG.equals(Main.listaMotoBoys.get(i).rg)) //.equals faz comparação de Strings
return true;
}
return false;
}
public String getMostraRG(){
return rg;
}
public static void setCadastrarMotoBoy(){
MotoBoys motoboy = new MotoBoys();
if(Main.listaMotoBoys.size() < 3){ //Verifica se quantidade de Motoboys cadastrados é menor que 3
motoboy.nome = JOptionPane.showInputDialog("Digite o nome do Motoboy: ");
motoboy.rg = JOptionPane.showInputDialog("Digite o RG do Motoboy: ");
motoboy.rfid = JOptionPane.showInputDialog("Digite o nº do RFID do Motoboy: ");
//Invoca método que incrementa 1 MotoBoy
Main.pizzaria.setIncrementaMotoBoy();
//Adiciona o Objeto Instânciado ao ArrayList de MotoBoys
Main.listaMotoBoys.add(motoboy);
}
else
JOptionPane.showMessageDialog(null, "Já existe 3 MotoBoys Cadastrados.");
}
public static void getRelatarMotoBoys(){
for(int i = 0; i < Main.listaMotoBoys.size(); i++)
{
JOptionPane.showMessageDialog(null, "MotoBoy "+(i+1));
JOptionPane.showMessageDialog(null,"Nome do MotoBoy: "+Main.listaMotoBoys.get(i).nome);
JOptionPane.showMessageDialog(null,"RG do MotoBoy: "+Main.listaMotoBoys.get(i).rg);
JOptionPane.showMessageDialog(null,"RFID do MotoBoy: "+Main.listaMotoBoys.get(i).rfid);
}
}
}
Classe Pedido:
package diskpizza;
import javax.swing.JOptionPane;
public class Pedido {
private String rgMotoboy;
private int codCliente;
private int codPizza;
static Pedido pedido = new Pedido();
private void setPopulaPedido(){
pedido.codPizza = Integer.parseInt(JOptionPane.showInputDialog(" MENU\n1 - Mussarela\n"
+ "2 - Calabresa\n3 - Portuguesa"));
pedido.codCliente = Integer.parseInt(JOptionPane.showInputDialog("Digite o código do Cliente: "));
pedido.rgMotoboy = JOptionPane.showInputDialog("Digite o RG do Motoboy: ");
}
public static void setGerarPedido(){
//Verifica se a quantidade de Objetos MotoBoy é nula (menor que 1)
if(Main.pizzaria.getMostraQtdeMotoBoy() < 1){
JOptionPane.showMessageDialog(null, "Não tem MotoBoy cadastrado para fazer a entrega!");
return;
}
if((Main.listaDePedidos.size()) < 5){
//Invoca método que atribui valores aos Atributos do Objeto pedido
pedido.setPopulaPedido();
//Verifica se retorno do método isVerificaRG é falso
if(MotoBoys.isVerificaRG(pedido.rgMotoboy) == false){
JOptionPane.showMessageDialog(null, "Não existe MotoBoy cadastrado com esse RG!");
return;
}
else
JOptionPane.showMessageDialog(null, "Pedido cadastrado com sucesso!");
//Adiciona o Objeto pedido ao ArrayList de Pedidos
Main.listaDePedidos.add(pedido);
//Invocando método que incrementa o Total de Pizzas em 1
Main.pizzaria.setIncrementaTotalPizza();
}
else
JOptionPane.showMessageDialog(null, "Só pode ser feito até 5 pedidos.");
}//Fim do método setGerarPedido
public static void getMostrarPedido(){
for(int i = 0; i < Main.listaDePedidos.size(); i++)
{
JOptionPane.showMessageDialog(null, "Pedido "+(i+1)+".");
JOptionPane.showMessageDialog(null, "Código do Cliente: "+Main.listaDePedidos.get(i).codCliente);
JOptionPane.showMessageDialog(null, "Código da Pizza: "+Main.listaDePedidos.get(i).codPizza);
JOptionPane.showMessageDialog(null, "RG do MotoBoy: "+Main.listaDePedidos.get(i).rgMotoboy);
}
}//Fim do método getMostrarPedido
}//Fim da Classe Pedido
Fico muito grato se alguém puder me ajudar!
Abraço!
Discussão (1)
Carregando comentários...