Duvida na orientação de objetos

5 respostas
O

Bom dia, to com um problema no seguinte caso.
Fiz uma classe Data , pra mostrar Data, dia , hora , e ano..
To desenvolvendo um Gerenciador de loja , so pra mim aprender mesmo ..

Com isso fiz um pacote chamado utilidade.. e coloquei o data.java dentro como o codigo abaixo ele compila OK .
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package utilidade;
import java.util.Date; // Pra mecher com datas, dias e etc preciso importa isso.

/**
 *
 * @author RoNii
 */
public class data { //declaro a clase exemplo data

    String dia , mes , ano , dia_semana, horas ; //declaro Char ou String com os nomes

    public void le_data() //dentro crio uma le_data pra ler os dias
    {
      Date data = new Date(); //Aqui a Importacao nossa vai receb nossa class
                                    // que vai receber uma Nova Date
      mes = ""+data.getMonth(); // aqui começa de 0 ate 11
      dia = ""+data.getDate(); //Pega o Dia do Pc atual
      ano = ""+(1900+data.getYear()); // O seguinte Pc pega o ano apartir de 1900 e soma mais o ano q estamos exmpo 110 (2010)
      dia_semana = ""+data.getDay(); // O Dia da semana que é
      horas = ""+data.getHours(); // horas

    }

}

Ai fui na Tela Principal e chamei a nossa Classe Data.java , pra pode mostrar o dia na tela principal.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TelaPrincipal.java
 *
 * Created on 02/08/2010, 23:27:20
 */
import utilidade.data;

/**
 *
 * @author RoNii
 */
public class TelaPrincipal extends javax.swing.JFrame {

    /** Creates new form TelaPrincipal */
    public TelaPrincipal() {
        initComponents();
    
        data mostra_data = new data();
        mostra_data.le_data(); 

       label_data.setText("Teste"+mostra_data.dia); // ESSA LINHA TA DANDO PROBLEMA... 

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        vender = new javax.swing.JButton();
        ConsultaProdut = new javax.swing.JButton();
        ImprimirNfe = new javax.swing.JButton();
        label_data = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        Cadastro = new javax.swing.JMenu();
        Clientes = new javax.swing.JMenu();
        NovoCliente = new javax.swing.JMenuItem();
        ConsultaCliente = new javax.swing.JMenuItem();
        Fornecedores = new javax.swing.JMenu();
        NovoFornecedor = new javax.swing.JMenuItem();
        ConsultaFornecedo = new javax.swing.JMenuItem();
        Produto = new javax.swing.JMenu();
        NovoProduto = new javax.swing.JMenuItem();
        Estoque = new javax.swing.JMenu();
        EntradaEstoque = new javax.swing.JMenuItem();
        SaidaEstoque = new javax.swing.JMenuItem();
        EditarEstoque = new javax.swing.JMenuItem();
        Vendas = new javax.swing.JMenu();
        NovaVenda = new javax.swing.JMenuItem();
        ConsultarVenda = new javax.swing.JMenuItem();
        Relatorios = new javax.swing.JMenu();
        Relatorio_vendas = new javax.swing.JMenuItem();
        Sair = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        vender.setText("Nova Venda");

        ConsultaProdut.setText("Consultar Produto");

        ImprimirNfe.setText("Imprimir NFe");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(26, 26, 26)
                .addComponent(vender)
                .addGap(64, 64, 64)
                .addComponent(ConsultaProdut)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 66, Short.MAX_VALUE)
                .addComponent(ImprimirNfe)
                .addGap(37, 37, 37))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(ConsultaProdut)
                    .addComponent(vender)
                    .addComponent(ImprimirNfe))
                .addContainerGap(32, Short.MAX_VALUE))
        );

        label_data.setText("Infor :");

        Cadastro.setText("Cadastro");

        Clientes.setText("Clientes");

        NovoCliente.setText("Novo Cliente");
        Clientes.add(NovoCliente);

        ConsultaCliente.setText("Consultar Cliente");
        Clientes.add(ConsultaCliente);

        Cadastro.add(Clientes);

        Fornecedores.setText("Fornecedores");

        NovoFornecedor.setText("Novo Fornecedor");
        Fornecedores.add(NovoFornecedor);

        ConsultaFornecedo.setText("Consultar Fornecedor");
        Fornecedores.add(ConsultaFornecedo);

        Cadastro.add(Fornecedores);

        Produto.setText("Produto");

        NovoProduto.setText("Novo Produto");
        Produto.add(NovoProduto);

        Cadastro.add(Produto);

        jMenuBar1.add(Cadastro);

        Estoque.setText("Estoque");

        EntradaEstoque.setText("Entrada de Produto");
        Estoque.add(EntradaEstoque);

        SaidaEstoque.setText("Saida de Produto");
        Estoque.add(SaidaEstoque);

        EditarEstoque.setText("Editar Produto");
        Estoque.add(EditarEstoque);

        jMenuBar1.add(Estoque);

        Vendas.setText("Vendas");

        NovaVenda.setText("Nova Venda");
        Vendas.add(NovaVenda);

        ConsultarVenda.setText("Consultar Venda");
        Vendas.add(ConsultarVenda);

        jMenuBar1.add(Vendas);

        Relatorios.setText("Relatorios");

        Relatorio_vendas.setText("Relatorio de Vendas");
        Relatorios.add(Relatorio_vendas);

        jMenuBar1.add(Relatorios);

        Sair.setText("Sair");
        jMenuBar1.add(Sair);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(label_data)))
                .addContainerGap(87, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 178, Short.MAX_VALUE)
                .addComponent(label_data))
        );

        pack();
    }// </editor-fold>                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaPrincipal().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JMenu Cadastro;
    private javax.swing.JMenu Clientes;
    private javax.swing.JMenuItem ConsultaCliente;
    private javax.swing.JMenuItem ConsultaFornecedo;
    private javax.swing.JButton ConsultaProdut;
    private javax.swing.JMenuItem ConsultarVenda;
    private javax.swing.JMenuItem EditarEstoque;
    private javax.swing.JMenuItem EntradaEstoque;
    private javax.swing.JMenu Estoque;
    private javax.swing.JMenu Fornecedores;
    private javax.swing.JButton ImprimirNfe;
    private javax.swing.JMenuItem NovaVenda;
    private javax.swing.JMenuItem NovoCliente;
    private javax.swing.JMenuItem NovoFornecedor;
    private javax.swing.JMenuItem NovoProduto;
    private javax.swing.JMenu Produto;
    private javax.swing.JMenuItem Relatorio_vendas;
    private javax.swing.JMenu Relatorios;
    private javax.swing.JMenuItem SaidaEstoque;
    private javax.swing.JMenu Sair;
    private javax.swing.JMenu Vendas;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JLabel label_data;
    private javax.swing.JButton vender;
    // End of variables declaration                   

}

Tá dando Erro so nessa linha .. " label_data.setText("Teste"+mostra_data.dia); " fala que o .dia não está public, porém fiz tudo certo no meu ponto de vista será que esqueci de algo ou passou batido?

Agradeço , e se postei no lugar errado me desculpe..

5 Respostas

Roger75

Na sua classe “data”, defina os atributos da classe como private e crie os métodos públicos setDia e getDia.
Dê uma estudada em padronização de nomes e também sobre encapsulamento.

nel

Bom dia.

Infelizmente, sou péssimo com Swing, portanto, pouco poderia ajuda-lo pois o erro a principio diz respeito a questões relacionadas ao Swing.
Mas posso lhe dizer duas coisas, jamais nomeie uma classe com a letra inicial minuscula, como fez com sua classe data, coloque Data.

Outro detalhe, os get que utiliza do pacote java.util.Date são deprecated, ou seja, estes métodos podem vir a funcionar mas não são recomendados!
Porque não avançar, um pouco apenas? Passe a usar Calendar --> http://download.oracle.com/javase/6/docs/api/.

É simples de manusiar e lhe trará ótimos resultados.
Há muitos exemplos na net de como utilizar esta classe ok?

Para instanciar, se quiser começar a testar, faça:

Calendar calendar = Calendar.getInstance();

Abraços e bom desenvolvimento!

italons

Qual versão do java vc está usando? No java 6 esses métodos da classe Date estão depreciados. E tente seguir algumas convenções como, por exemplo, começar o nome da sua classe com letra maiuscula.

O

Agradeço todas as informações…
Conseguir resolver o problema…

leonardofl

Quando resolver um problema sozinho para um post que você fez, não deixe de mostrar a solução, pois outras pessoas podem achar o seu post e estarem com o mesmo problema!

Criado 3 de agosto de 2010
Ultima resposta 4 de ago. de 2010
Respostas 5
Participantes 5