Carcleo 4 Denunciar post Postado Junho 12, 2015 Olá pessoal, gostaria de saber como me comportar diante do seguinte quadro em Herança. Class Pessoa Class Funcionario extends Pessoa Class Cliente extends Pessoa Funcionário quer ser cliente! E agora? Como representar isso? Não deve ser coerente ter dois cadastros para a mesma Pessoa! Um Cliente e um Funcionário. Nesse caso, o que fazer? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 12, 2015 Herança múltipla talvez. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 12, 2015 Em Java não se tem herança múltipla (odeio isso, mas fazer o quê...Decisões de projeto)O que talvez seja a sua saída é definir interfaces ao invés de usar herança.Exemplo:Pessoa.java: public class Pessoa { private String nome; private String CPF; private Date DOB; // Data de nascimento public Pessoa(String _nome, String _cpf, Date _dob) {...} // Defina outros métodos possíveis p/ pessoa. } ICliente.java interface ICliente { void comprar(); // Defina outras coisas aplicáveis aqui. } IFuncionario.java interface IFuncionario { void registrarPonto(); void registrarVenda(); // Defina outras coisas aplicáveis. } Funcionario.java: class Funcionario extends Pessoa implements IFuncionario,ICliente { // Escreva a implementação dos métodos de IFuncionario e ICliente } Cliente.java: class Cliente extends Pessoa implements ICliente { // Escreva a implementação dos métodos de ICliente. } Quanto aos itens de venda, você não armazena eles dentro da pessoa, e sim numa outra classe, digamos RegistroVendas, que contém um ArrayList<Produto> ou quem sabe um map de produto e funcionário responsável pela venda do mesmo (no caso de uma funcionalidade de bônus). Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 13, 2015 Não perdendo a piada , outra solução seria, venda caro e pague pouco ... Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 13, 2015 _isis_, minha preocupação é mais com o cadastro desse funcionário e não com a compra em si! Se ele o funcionário comprou, e apenas clientes compram, e mais para frente desejo fazer uma lista de clientes que compraram, esse funcionário não sairá nessa lista entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 13, 2015 Sairá se vc incluir a referência ao objeto.P/ verificar se o objeto implementa a interface no caso de existir um Diretor ou Presidente que não pode comprar na loja, por exemplo, você vai ter um ICliente.class.isAssignableFrom(objeto.class).http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isAssignableFrom(java.lang.Class) Nesse caso, você não terá uma lista de Funcionários, nem de Clientes, mas de Pessoas (um objeto mais genérico na hierarquia). Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 14, 2015 _isis_ agora e ntendi. Mas fazendo com Pessoas não vai funcionar no eu caso. Vou pensar em outra coisa. Mas, pode me ajudar em outro problema? Onde estou errando? Bom, instalei o Apache Tomcat aqui: C:\Program Files\Apache Software Foundation\Tomcat 8.0\ Entrei na pasta C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\ e criei uma pasta "jsp" para dizer que dentro dela vou colocar meus projetos. Daí pra frente a árvore de diretórios do meu projeto ficou assim: imwsaogotardo.com.br (nome do site) imwsaogotardo.com.br grava.jsp index.jsp /ebd /dao /banco Conexao.java /pessoas DAOPessoa.java DAOProfessor.java /modelos /perguntas Pergunta.java /pessoas Pessoa.java Professor.java Usuario.java /retornos Comentario.java Resposta.java Retorno.java /salas Sala.java O arquivo index.jsp esta assim: <%@ page import="java.util.List" %> <%@ page import="ebd.dao.pessoas*." %> <%@ page import="ebd.dao.banco*." %> <html> <head> <title>IMW Muriaé São Gotardo - EBD</title> <head> <body> EBD<br /><br /><br /> <form action="grava.jsp" method="post"> <input type="text" name="nome" id="nome"><br /> <input type="text" name="nascimentoDia" id="nascimentoDia"><br /> <input type="text" name="nascimentoMes" id="nascimentoMes"><br /> <input type="text" name="nascimentoAno" id="nascimentoAno"><br /> <input type="submit" value="Envia"> </form><br /> <%@ DaoPessoa pessoa = new DaoPessoa(); outprint(pessoa.buscarTodos()); %> </body> </html> Eis o erro gerado: HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.imwsaogotardo_com_br.index_jsp type Exception report message java.lang.ClassNotFoundException: org.apache.jsp.imwsaogotardo_com_br.index_jsp description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.imwsaogotardo_com_br.index_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:176) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.ClassNotFoundException: org.apache.jsp.imwsaogotardo_com_br.index_jsp java.net.URLClassLoader.findClass(Unknown Source) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:62) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.22 logs. Apache Tomcat/8.0.22 Quado dou f5, o erro muda para: HTTP Status 500 - /imwsaogotardo.com.br/index.jsp (line: 19, column: 3) Invalid directive type Exception report message /imwsaogotardo.com.br/index.jsp (line: 19, column: 3) Invalid directive description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: /imwsaogotardo.com.br/index.jsp (line: 19, column: 3) Invalid directive org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91) org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492) org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1782) org.apache.jasper.compiler.Parser.parse(Parser.java:136) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227) org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:117) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:194) org.apache.jasper.compiler.Compiler.compile(Compiler.java:356) org.apache.jasper.compiler.Compiler.compile(Compiler.java:336) org.apache.jasper.compiler.Compiler.compile(Compiler.java:323) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.22 logs. Apache Tomcat/8.0.22 Me parece que estou errando na hora de fazer os includes. Obs.: Não estou usando IDE alguma. Estou programando direto no Notepad++ a fim de aprender melhor a codificação. Mas acontece que tenho arquivos .java no meu site mas a JVM não lê .java e sim .class. Deve precisar primeiro compilar o .java. Mas onde vou fazer isso? O Servidor Tomcat será que faz? Senão, precisarei usar um compilador manual (javac) e sair compilado manualmente arquivo a arquivo .java ou uma IDE (NetBeans) para fazer a compilaçao de todo .java arquivos de uma só vez! Nestes arquivos que fiz, o form do index.jsp é submetido corretamente e o grava.jsp recebe normalmente e imprime os campos do form. Onde estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 14, 2015 Por que não iria funcionar? A princípio é indiferente p/ loja diferenciar clientes comuns de funcionários clientes. public class CupomFiscal { private Pessoa cliente; private Funcionario vendedor; private ArrayList<Item> produtos; } Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 14, 2015 O problema é outro agora _isis_. Veja: Me parece que estou errando na hora de fazer os includes. Obs.: Não estou usando IDE alguma. Estou programando direto no Notepad++ a fim de aprender melhor a codificação. Mas acontece que tenho arquivos .java no meu site mas a JVM não lê .java e sim .class. Deve precisar primeiro compilar o .java. Mas onde vou fazer isso? O Servidor Tomcat será que faz? Senão, precisarei usar um compilador manual (javac) e sair compilado manualmente arquivo a arquivo .java ou uma IDE (NetBeans) para fazer a compilaçao de todo .java arquivos de uma só vez! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 14, 2015 Site? Vc tá estudando Java web? Containers tem configurações específicas. Leia o manual do Tomcat. Compartilhar este post Link para o post Compartilhar em outros sites