Página Inicial do Fórum > Java Básico

Desespero! Istanciar variáveis sem inicializar!



Criar novo tópico   Responder tópico


  1. jeanjn
    Posts:50


    Comment Arrow

    Publicado em: 29/07/2012 17:20:35

    Boa tarde a todos!

    Possuo 3 classes:

    Visual (peso, altura, imc);
    Salvar (nome, idade);
    GerarPdf ();

    Na classe GerarPdf preciso usar as variáveis da classe Visual e Salvar, porém se eu escrever:



    A classe inteira sera inicializada novamente e não terá valor nenhum.

    Preciso istanciar as variáveis sem inicializar o construtor novamente para poder trabalhar com os valores ja digitados.

    Como poderia fazer isso?

    pensei em criar uma quarta classe que gerencia todas as outras porém creio não ser o modo mais eficiente e muito complexo!

    Grato!
    _________________
    Java é o poder!




  1. SpotBr
    Posts:51


    Comment Arrow

    Publicado em: 29/07/2012 17:48:52

    P consultar variavel de outra classe usa



    Exemplo, eu tenho a classe Teste
    e nela a variavel int testeNum;

    agora vou exibir oque está na variavel testeNum, em uma outra classe.


    _________________
    null




  1. simu
    Posts:9417


    Comment Arrow

    Publicado em: 29/07/2012 19:45:31

    SpotBr
    P consultar variavel de outra classe usa



    Exemplo, eu tenho a classe Teste
    e nela a variavel int testeNum;

    agora vou exibir oque está na variavel testeNum, em uma outra classe.





    Você cria uma nova instância para mostrar o valor da variável?
    A pergunta original é exatamente como NÃO evitar isso, pois não funciona!

    A sua solução é semelhante a comprar um novo carro para ver quanta gasolina tem no carro anterior - sem levar em conta o custo adicional, só vai saber quanta gasolina tem no novo carro!

    Além disso, seguindo os conceitos da programação orientada a objetos, o correto seria a variável ser privada e se usar um método para obter o valor dela!



    @jeanjn:

    Existem várias possibilidades, depende dos detalhes do programa e (principalmente) do programador.

    - uma é fazer como você escreveu, usando uma classe adicional para manter as instâncias - é bem fácil, mas pode causar alguns problemas (dificuldade de testar, por exemplo)

    - passar a instância para a classe, ou no construtor, ou através de um método - desvantagem: o acoplamento 'rígido' entre as classes, mas provavelmente o mais indicado para o seu caso

    - usar tipo um Listener/Interface junto com a opção anterior para diminuir o acoplamento

    - ...
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. jeanjn
    Posts:50


    Comment Arrow

    Publicado em: 29/07/2012 17:20:35

    Vish, ficou complicado agora!

    Bom estou pensando em como fazer a partir de uma classe adicional, porém eu penso para eu usar ela em cada classe terei que inicializar a classe adicional e a mesma irá toda vez inicializar as classes e dará tudo no mesmo!

    Se estou errado por favor me dê exemplos.


    _________________
    Java é o poder!




  1. D3z40
    Posts:480


    Comment Arrow

    Publicado em: 30/07/2012 14:10:12

    jeanjn
    Vish, ficou complicado agora!

    Bom estou pensando em como fazer a partir de uma classe adicional, porém eu penso para eu usar ela em cada classe terei que inicializar a classe adicional e a mesma irá toda vez inicializar as classes e dará tudo no mesmo!

    Se estou errado por favor me dê exemplos.



    Nossa eu "boiei" completamente, acho que o pouco que entendi, devo ter entendido mal, pois estou me perguntando qual a logica de criar uma clase com atributos que vc não quer atribuir valores???


    @simu é fera mesmo... vc merece!!!
    _________________
    O melhor lugar para se esconder um cadáver, é na segunda página do Google.




  1. simu
    Posts:9417


    Comment Arrow

    Publicado em: 29/07/2012 19:45:31

    jeanjn
    Vish, ficou complicado agora!

    Bom estou pensando em como fazer a partir de uma classe adicional, porém eu penso para eu usar ela em cada classe terei que inicializar a classe adicional e a mesma irá toda vez inicializar as classes e dará tudo no mesmo!

    Se estou errado por favor me dê exemplos.



    é mais ou menos a ideia do padrão Singleton - uma classe que só tem e só permite uma única instância. Não é minha preferida, mas funciona bem fácil. Exemplo (simplificado):

    ou, mais sujo (não faça assim):


    é claro que também pode fazer as próprias classes Visual e Salvar como Singleton. Exemplo:


    não sei qual o significado, qual o conteúdo das classes, mas penso que a melhor solução é passar as instâncias (ou os valores) no construtor (ou num método set):

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. estagio22
    Posts:8


    Comment Arrow

    Publicado em: 02/08/2012 14:24:33

    Que eu saiba mesmo que você não defina uma construtor para a sua classe JAVA cria uma construtor padrão inicializando os valores numéricos com 0 e as strings com null.

    Você quer manipular as variáveis ? Use métodos Get e Set




  1. jeanjn
    Posts:50


    Comment Arrow

    Publicado em: 29/07/2012 17:20:35

    Muito obrigado pessoal, bom depois de varios testes, usando as várias explicações de vocês cheguei a conclusão final de que meu código está uma bagunça e já não é possível eu estanciar os valores nessa altura do campeonato. A menos que eu refaça algumas coisas no meu código mas seria muito trabalhoso, como o objetivo principal do mesmo eu conclui e onde o erro está acontecendo era apenas um capricho então vou finaliza-lo por aqui mesmo =D

    Grato!
    _________________
    Java é o poder!




  1. 13alemao
    Posts:54


    Comment Arrow

    Publicado em: 02/08/2012 16:14:54

    jeanjn
    Muito obrigado pessoal, bom depois de varios testes, usando as várias explicações de vocês cheguei a conclusão final de que meu código está uma bagunça e já não é possível eu estanciar os valores nessa altura do campeonato. A menos que eu refaça algumas coisas no meu código mas seria muito trabalhoso, como o objetivo principal do mesmo eu conclui e onde o erro está acontecendo era apenas um capricho então vou finaliza-lo por aqui mesmo =D

    Grato!



    Cara vc pode declarar métodos e variáveis de uma classe como static. Que com isso, vc poderá setar um valor, e acessálos quando e onde quiser.
    Ex:

    _________________
    Estudante de Sistemas de Informação FIPP-Unoeste 7º Termo
    Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seus poderes ultrapassam os limites da imaginação.
    - Albert Einstein




  1. jeanjn
    Posts:50


    Comment Arrow

    Publicado em: 29/07/2012 17:20:35

    Sim, mas li em outros tópicos que isto é uma prática errada no java e estou tentando fazer do modo certo, mas de qualquer forma obrigado!
    _________________
    Java é o poder!




  1. 13alemao
    Posts:54


    Comment Arrow

    Publicado em: 02/08/2012 16:14:54

    jeanjn
    Sim, mas li em outros tópicos que isto é uma prática errada no java e estou tentando fazer do modo certo, mas de qualquer forma obrigado!



    Entenda, essa não é uma afirmação geral.
    Talvez para seu caso não seja correto usar static mesmo, assim como em muitos outros casos.
    Mas metodos e variaveis estáticas são muito úteis. Variáveis talvez não. mas métodos com certeza.
    Um exemplo simples é declarar metodos de uma classe de Comunicação com o Banco de Dados:

    Pois essas não é necessário criar novas quando houver necessidade de utilizalas. Já que são constantemente utilizadas, podem ser declaradas como estáticas.
    Espero ter ajudado.
    _________________
    Estudante de Sistemas de Informação FIPP-Unoeste 7º Termo
    Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seus poderes ultrapassam os limites da imaginação.
    - Albert Einstein




  1. simu
    Posts:9417


    Comment Arrow

    Publicado em: 29/07/2012 19:45:31

    13alemao
    jeanjn
    Sim, mas li em outros tópicos que isto é uma prática errada no java e estou tentando fazer do modo certo, mas de qualquer forma obrigado!



    Entenda, essa não é uma afirmação geral.
    Talvez para seu caso não seja correto usar static mesmo, assim como em muitos outros casos.
    Mas metodos e variaveis estáticas são muito úteis. Variáveis talvez não. mas métodos com certeza.
    Um exemplo simples é declarar metodos de uma classe de Comunicação com o Banco de Dados:

    Pois essas não é necessário criar novas quando houver necessidade de utilizalas. Já que são constantemente utilizadas, podem ser declaradas como estáticas.
    Espero ter ajudado.



    exatamente, o static é desaconselhado, mas sempre existe a exceção

    - o importante é fazer um modelo de objetos coerente, normalmente isso resolve o problema de como declarar qual variável e onde innstanciar ela....
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. ricoarrigoni
    Posts:1860


    Comment Arrow

    Publicado em: 03/08/2012 10:53:44

    simu
    jeanjn
    Vish, ficou complicado agora!

    Bom estou pensando em como fazer a partir de uma classe adicional, porém eu penso para eu usar ela em cada classe terei que inicializar a classe adicional e a mesma irá toda vez inicializar as classes e dará tudo no mesmo!

    Se estou errado por favor me dê exemplos.



    é mais ou menos a ideia do padrão Singleton - uma classe que só tem e só permite uma única instância. Não é minha preferida, mas funciona bem fácil. Exemplo (simplificado):

    ou, mais sujo (não faça assim):


    é claro que também pode fazer as próprias classes Visual e Salvar como Singleton. Exemplo:


    não sei qual o significado, qual o conteúdo das classes, mas penso que a melhor solução é passar as instâncias (ou os valores) no construtor (ou num método set):



    Nossa, Vote Simu para presidente!

    Explicação perfeita! simples e clara. Até eu que não sei N.A.D.A de Singleton entendi com essa explicação rsrs

    Parabéns Simu!
    _________________
    Ricardo Arrigoni
    Moderador JavaFree
    Utilize a tag CODE
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico