Desenvolvendo meu primeiro projeto em JAVA

11/01/2012

0

SEEK estive ausente esses dias e estarei novamente apartir de amanhã, juro que perdi um pouco do rumo que tinha tomando desde o sábado... Vamos deixar de conversa mole e vamos ao que interessa... Como você me intimou, primeiro tenho que ler bastante pra evitar fazer algo estruturado numa ambiente orientado a objeto, entendi bem, só tem umas coisas que era complexas pra burro e não teve jeito(mas também achei que aquilo era coisa bem avançada)... Pelo que eu vi, o jeito é fazer pelo console(bem diferente comparado ao Shell do Python(tela preta)), só que eu tô com uma ideia desgraçada na cabeça que eu posso avançar já pra GUI(devo estar ficando louco pra poder desenvolver alguma coisa legal(clicável eu acho kkkkkk) me da um norte cara... Eu sou um cara que tem muita força de vontade só que sem muitas ideias(tenho que mudar isso urgente), a unica ideia que tenho é passar meu projeto do Python pra Java, e logo com GUI... Enfim eu acho que posso e não tenho dúvidas, não sei de tudo, mais gosto de estudar e fazer na hora, to afim de tentar meter a cara no negocio difícil sem medo de errar(até por que ainda estou estudando) me ajuda cara? Tô pensando em desenhar o programa(como ficaria a interface), ver os nomes dos JAlgumaCoisa(componentes que irei usar) para estudar mais sobre eles... e acho que a parada das classes já ta bem fixada na minha cabeça... ME AJUDA?! PS: Num sei se você é professor ou se já é um cara fodão da área sei que você pode me ajudar demais =D enfim... Qualquer coisa serve! Vlw aguadando... [img]http://javafree.uol.com.br/files_user/files/7/51/6E/challenge.jpg[/img]
Murilo Lopes

Murilo Lopes

Responder

Post mais votado

27/01/2012

[quote="Murilo Lilo"]Por que:
p.addTelefone("1234-5678");
? Se p(pessoa) só tem como parâmetro o nome como eu vou add telefone?
[img]http://javafree.uol.com.br/forum/images/smiles/tantan.gif[/img]

Luciano Cargnelutti

Luciano Cargnelutti
Responder

Mais Posts

16/01/2012

Murilo Lopes

[quote="sekkuar"][quote="renanzimmer"][quote="sekkuar"][quote="renanzimmer"]Eu particularmente, tento usar sets e gets só em ultimo caso. Tu tem que ter em mente o que o teu objeto tem e o que ele pode fazer com isso. Ex: Esses dias estava discutindo sobre um codigo de uma aplicaçãozinha web pra fazer alguns calculos de peso e outras viadagens no sistemas solar. Os planetas tinham como atributos a gravidade, raio e outras coisas. A questão foi a seguinte: Queria-se descobrir o peso de alguem em determinado planeta digitando-se apenas a massa do corpo. O código antes tinha uma classe (não lembro o nome, mas era algo como) CalculadoraDePeso que utilizava um GET pras gravidades dos planetas. Na discussão, chegamos a um consenso, mais valia jogar o valor da massa pra cada planeta, e o planeta dizia qual seria o peso. Os planetas tinham tudo pra resolver o problema, nao era necessário que alguem "metesse o dedo" em seus atributos.
Mas dae depende do caso! A sua classe CalculadoraDePeso pode ser inútil, se ela só fazia o que os planetas faziam entre si. Mas agora, pegue como exemplo essa própria agenda telefônica. A classe pessoa é praticamente um [url=http://pt.wikipedia.org/wiki/Plain_Old_Java_Objects]POJO[/url], ela só tem uma função: Armazenar os dados da pessoa, só isso e nada mais. nesse caso, os gets e setters SÃO necessários, porque todo o controle vai ser feito em outra parte do programa.
Sim, sem dúvidas, o post foi só pra ficar atento quanto ao uso constante (irracional). Classico vicio de programação.
você está falando disso aqui: http://blog.caelum.com.br/nao-aprender-oo-getters-e-setters/ Sim, eu tento ser muito compreensivel com o pessoal que ta pouco se lixando pra um codigo organizado. Eu realmente sou muito chato com a histórial de POO. Tanto é que aínda nao ajudei ninguém aqui com o código em sí ou porque ja tinha gente ajudando, ou porque o código era um lixo (na minha opiniao), e se eu fosse modificar, transformaria completamente. Pra mim, se o metodo main tem mais de 2 linhas, já ta fora de um conceito de POO, aliás, um método main já está fora, visto que é estático e nenhum objeto está sendo utilizado. Se eu fosse listar aqui varias praticas comum em programação que eu sou contra, o pessoal ía me xingar e me jogar na cruz. Mas é por isso que a industria de software é igual uma de navios com casco furado. Por outro lado, quando tenho oportunidade pra discutir metodos eficientes pra OO ou ED, nao me escondo. hehe
Responder

16/01/2012

Murilo Lopes

Não sou Sekkuar, mas... [quote="Murilo Lilo"] SEKK me diz uma coisa: cria um construtor que recebe as 3 Strings é isso abaixo?
public Pessoa(String nome, String email, String telefone) {     
    setNome(nome);  
    setTelefone(telefone);  
    setEmail(email);  

    System.out.println("Informações da pessoa");  
    System.out.println("  nome:  " + getNome());  
    System.out.println("  idade: " + getTelefone());  
    System.out.println("  peso:  " + getEmail());    
      
  }
Não. Você vai fazer o this.nome = nome, this.idade.......... [quote="Murilo Lilo"] cria um objeto pessoa, passando as Strings como argumento é isso abaixo?
Pessoa objPessoa = new Pessoa(nome, telefone, email);
Isso. Você está [b]instanciando uma classe[/b], e está a referenciando a um [b]objeto[/b]!
Responder

16/01/2012

Douglas Eric

[quote="Murilo Lilo"]É eu sinto dificuldade em entender um ou outro nome, acho que eu peguei bem programação estruturada, por isso que não me desfiz totalmente dela ainda e até por que ainda to aprendendo a OO e eu acho que ela requer um pouco mais de tempo pra sacar bem. SEKK me diz uma coisa: cria um construtor que recebe as 3 Strings é isso abaixo?
public Pessoa(String nome, String email, String telefone) {     
    setNome(nome);  
    setTelefone(telefone);  
    setEmail(email);  

    System.out.println("Informações da pessoa");  
    System.out.println("  nome:  " + getNome());  
    System.out.println("  idade: " + getTelefone());  
    System.out.println("  peso:  " + getEmail());    
      
  }
cria um objeto pessoa, passando as Strings como argumento é isso abaixo?
Pessoa objPessoa = new Pessoa(nome, telefone, email);
Isso! exatamente assim, está perfeito. [quote="Murilo Lilo"] e qual a diferença disso acima para isso abaixo?
new Pessoa(nome, telefone, email);
A diferença é a seguinte. Em java, qualquer objeto que não tenha nenhuma variável de referência é lixo, e será apagado o mais rápido possível. Nesse segundo caso, você criou o objeto, mas ele não está salvo em lugar algum! ou seja, é impossível você acessa-lo, e por isso ele vira lixo e morre. A primeira forma, você salva ele em uma variável, enquanto ele estiver ali, não vai virar lixo e você vai poder continuar usando.
Responder

16/01/2012

Renan Zimmer

[quote="MathewsMotta"]Não sou Sekkuar, mas... [quote="Murilo Lilo"] SEKK me diz uma coisa: cria um construtor que recebe as 3 Strings é isso abaixo?
public Pessoa(String nome, String email, String telefone) {     
    setNome(nome);  
    setTelefone(telefone);  
    setEmail(email);  

    System.out.println("Informações da pessoa");  
    System.out.println("  nome:  " + getNome());  
    System.out.println("  idade: " + getTelefone());  
    System.out.println("  peso:  " + getEmail());    
      
  }
Não. Você vai fazer o this.nome = nome, this.idade.......... [quote="Murilo Lilo"] cria um objeto pessoa, passando as Strings como argumento é isso abaixo?
Pessoa objPessoa = new Pessoa(nome, telefone, email);
Isso. Você está [b]instanciando uma classe[/b], e está a referenciando a um [b]objeto[/b]! não tem problema algum se usar os sets no construtor. Alias, dependendo do caso, é até melhor que se faça isso. e, você nunca "instancia uma classe", você instancia um "objeto daquela classe". A differença entre os dois casos, é que na segunda, ele não tem nenhuma referencia ao objeto.
Responder

16/01/2012

Renan Zimmer

[quote="sekkuar"] cria um construtor que recebe as 3 Strings é isso abaixo?
public Pessoa(String nome, String email, String telefone) {     
    setNome(nome);  
    setTelefone(telefone);  
    setEmail(email);  

    System.out.println("Informações da pessoa");  
    System.out.println("  nome:  " + getNome());  
    System.out.println("  idade: " + getTelefone());  
    System.out.println("  peso:  " + getEmail());    
      
  }
Isso! exatamente assim, está perfeito.
Tem certeza? Se é o construtor, não havia a necessidade de usar o get e set, já que poderia modificar atributos privados. Em todo caso, o resultado final é o mesmo que se vc fizesse this.nome = nome e etc(Isso porque ao usar o setNome você faz EXATAMENTE isso)
Responder

16/01/2012

Murilo Lopes

E a parada do this? Devo usar? Se sim, onde? Renan, pode falar mano, tô aprendendo, qualquer informação é bem vinda =D
Responder

16/01/2012

Renan Zimmer

[quote="MathewsMotta"][quote="sekkuar"] cria um construtor que recebe as 3 Strings é isso abaixo?
public Pessoa(String nome, String email, String telefone) {     
    setNome(nome);  
    setTelefone(telefone);  
    setEmail(email);  

    System.out.println("Informações da pessoa");  
    System.out.println("  nome:  " + getNome());  
    System.out.println("  idade: " + getTelefone());  
    System.out.println("  peso:  " + getEmail());    
      
  }
Isso! exatamente assim, está perfeito.
Tem certeza? Se é o construtor, não havia a necessidade de usar o get e set, já que poderia modificar atributos privados. Em todo caso, o resultado final é o mesmo que se vc fizesse this.nome = nome e etc(Isso porque ao usar o setNome você faz EXATAMENTE isso)
Só porque você "pode" fazer alguma coisa, não quer dizer que deve, ou que ela é a unica ou melhor opção. Pense bem: qual é a função dos setters? Colocar o valor na variável. e dos getters? Retornar o valor. não quer dizer que os getters e setters precisam ser usados apenas fora da classe. O propósito deles é sempre o mesmo. Contanto que não se use algo para um propósito ao qual ele não foi feito, não existe problema algum em fazê-lo.
Responder

16/01/2012

Mathews Motta

Só para constar. Não se preocupe se não estiver entendendo orientação a objeto direito. É assim mesmo. Eu também vim a alguns meses pro Java, direto do C, e foi uma batalha dura quebrar o estruturado. Mas sério, quando vc entender a lógica da Orientação a Objeto, quando as peças se encaixarem na sua cabeça, vc vai saber que coisa LINDA é esse tipo de paradigma. É EXTREMAMENTE mais organizado do que oq vc via no estruturado. Além disso a manutenção e adição de elementos no programa é MUITO facilitada. Continue firme e forte que quando vc começar a pegar o jeito legal vc não vai parar de estudar !
Responder

16/01/2012

Renan Zimmer

[quote="Murilo Lilo"]E a parada do this? Devo usar? Se sim, onde? Renan, pode falar mano, tô aprendendo, qualquer informação é bem vinda =D
public Pessoa(String nome){
   this.nome = nome;
}
public Pessoa(String nome){
   setNome(nome);
}
Esses dois códigos são exatamente iguais. Você pode fazer do jeito que achar melhor.
Responder

16/01/2012

Murilo Lopes

Cara que coisa do capeta vei =D muita massa isso, o caba fica doido de tanta informação xD só que agora vou ter que dar uma saidinha e volto em umas duas horas, se poderem continuem a discussão que quando eu voltar vou ler tudinho =D até mais! [img]http://javafree.uol.com.br/files_user/files/7/51/6E/challenge.jpg[/img]
Responder

16/01/2012

Murilo Lopes

[quote="sekkuar"][quote="Murilo Lilo"]E a parada do this? Devo usar? Se sim, onde? Renan, pode falar mano, tô aprendendo, qualquer informação é bem vinda =D
public Pessoa(String nome){
   this.nome = nome;
}
public Pessoa(String nome){
   setNome(nome);
}
Esses dois códigos são exatamente iguais. Você pode fazer do jeito que achar melhor.
Murilo, sabe porque são iguais? Ora, quando vc fez seu método setNome não foi:
public void setNome(String nome){
this.nome = nome;
}
Se vc colocar setNome(nome) no construtor, ele vai direto pra esse código acima, e vai dar no mesmo! Resumindo, ele faria esse caminho: 1- Na classe Main, vc escreveu:
// Codigos...
Pessoa p = new Pessoa("Alfredo");
// Codigos...
Ou seja, vc fez uma nova referência a um objeto pessoa, chamado Alfredo. 2- Quando ele recebesse o "Alfredo" na classe main, ele ia pra classe pessoa:
public Pessoa(String nome){
setNome(nome);
}
Perceba que esse (nome) é o nome recebido pelo argumento! Ou seja, nome = "Alfredo". 3 - Quando o setNome(nome) receber esse argumento, ele vai pro método setNome:
public void setNome(String nome){
this.nome = nome;
}
Agora o argumento do método recebeu o valor do setNome lá do construtor, que também era chamado de nome e que recebeu o argumento "Alfredo" lá do main. A partir desse ponto, sua variável 'nome' da sua classe 'Pessoa' deixa de ser null e passa a ser "Alfredo". Sacou? Isso é orientação a objetos: fazer referências a diversos pontos do programa, e não colocando tudo em uma linha só.
Responder

16/01/2012

Renan Zimmer

[quote="MathewsMotta"][...]
Obrigado! era isso que eu queria explicar mas estava com preguiça, toma com biscoito de presente! [img]http://javafree.uol.com.br/files_user/files/9/74/9D/cookie1.jpg[/img]
Responder

16/01/2012

Douglas Eric

Obrigado a vc. Adoro cookies :grin:
Responder

16/01/2012

Murilo Lopes

KKKKKKKKKKK legal =D Agora que eu entendi tudo que ta ai, meu programa já pergunta para o usuário o nome, telefone e o email. Agora só falta colocar isso na array? Eu terei que criar 3 array's? Uma para cada atributo?
Responder

16/01/2012

Renan Zimmer

[quote="Murilo Lilo"]KKKKKKKKKKK legal =D Agora que eu entendi tudo que ta ai, meu programa já pergunta para o usuário o nome, telefone e o email. Agora só falta colocar isso na array? Eu terei que criar 3 array's? Uma para cada atributo?
não! seus atributos não estão todos dentro do seu objeto Pessoa? você só precisa salvar as Pessoas! uma ArrayList só
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar