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

Saquei this.nome = nome; tô atribuindo a variável local nome o valor que a variável de atributo(a que ta como parâmetro) certo? Sim e agora? Entendi o construtor, faço o que agora?
Responder

16/01/2012

Douglas Eric

[quote="Murilo Lilo"] this.nome = nome; tô atribuindo a variável local nome o valor que a variável de atributo(a que ta como parâmetro) certo?
ao contrário! [quote="Murilo Lilo"] Sim e agora? Entendi o construtor, faço o que agora?
não sei. O que falta você fazer? termine a classe Pessoa, com os atributos, construtor, getters e setters.
Responder

16/01/2012

Douglas Eric

Deixa eu tentar explicitar melhor o this: PS: Isso é apenas uma ilustração! Não é recomendado fazer tal prática, é apenas para vc entender o que ocorre.
public class Pessoa {  
     
        private String nomeNessaClasse;  
     
   public Pessoa(String nomeQueRecebe) {        
              this.nomeNessaClasse = nomeQueRecebe;  
      }  
  
}  
Ou seja, qdo vc vê this.nome = nome, significa que a classe, que possui a variável "nome" está recebendo um nome de alguém que a chamou. lembra quando vc fez:
Pessoa pessoa = new Pessoa("Fulano");
? Esse "Fulano" é o "nomeQueRecebe". Ou seja, o this.nome, que é a variável nome DA CLASSE, receberá o argumento nomeQueRecebe(No caso, "Fulano").
Responder

16/01/2012

Murilo Lopes

Pronto saquei essa parte... Vou postar mais algumas dúvidas: Get's e Set's o que cada um faz? (As vezes penso que sei, mas logo vejo que não sei nada D=) Scanner, serve para pegar dados do usuário? ou o get e o set faz isso?
Responder

16/01/2012

Douglas Eric

[quote="Murilo Lilo"]Pronto saquei essa parte... Vou postar mais algumas dúvidas: Get's e Set's o que cada um faz? (As vezes penso que sei, mas logo vejo que não sei nada D=) Scanner, serve para pegar dados do usuário? ou o get e o set faz isso?
Não misture as coisas! Getters e Setters http://www.vivaolinux.com.br/dica/Entendendo-os-getters-e-setters-em-Java e também esse tópico é um bom exemplo do que NÃO fazer http://javafree.uol.com.br/topic-883391-Problema-com-getters-e-setters-e-this.html
Responder

16/01/2012

Douglas Eric

[quote="Murilo Lilo"]Pronto saquei essa parte... Vou postar mais algumas dúvidas: Get's e Set's o que cada um faz? (As vezes penso que sei, mas logo vejo que não sei nada D=) Scanner, serve para pegar dados do usuário? ou o get e o set faz isso?
Get's e Set's, em resumo, são métodos públicos de acesso, ou simplesmente métodos de acesso. Sua idéia é simples. Não é interessante para a aplicação que os atributos de uma classe sejam acessáveis por qualquer outra parte do programa. É aí que entra o Get e Set, que servem, como o nome sugere, respectivamente, para você obter um valor de um atributo privado, ou definir um novo valor a um atributo privado. Veja o exemplo da classe Pessoa do sekkuar. O atributo "nome" é privado! Mas CUIDADO: Nem todo atributo precisa de um get e um set. E isso meu amigo, você com certeza pode errar bastante. Mas com um tempo de costume e abstração vai ver a necessidade(ou não) do get e set. Vendo o exemplo do sekkuar, naquele caso ele definiu nome no construtor. Ou seja, toda vez que uma instância daquela classe é criada e referenciada, você é obrigado a definir o nome da pessoa. Seria, então, interessante criar um get e um set, uma vez que ele já está definindo o nome no construtor? [b]MAS É CLARO![/b] Além de possibilitar a mudança do atributo nome daquela referência, ainda nos proporciona OBTER o valor de 'nome'. @Scanner A classe scanner, como o nome TAMBÉM sugere, é uma classe que, em resumo, lê dados. Seja dados de entrada do TECLADO direto na aplicação, seja de um arquivo, enfim... No seu caso, você provavelmente vai usar por agora leitura de dados direto do teclado. Deixa eu aproveitar e te passar uma coisa muito interessante, chamada JavaDoc: http://docs.oracle.com/javase/7/docs/api/ Nesse link temos um database de todas as classes padrões do Java. Entre nela e dê um CTRL+F procurando por Scanner ali na esquerda que vc deve achar mais detalhes sobre a classe Scanner, por exemplo! Se falei alguma besteira nesse post, por favor me corrijam.
Responder

16/01/2012

Murilo Lopes

Vamos ver o que eu produzi até então: Arquivo "Pessoa.java":
package ListaPackage;

import java.util.Scanner;

public class Pessoa {  
    
    public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}

	private String nome;
	private String telefone;
   private String email;
    
    
public Pessoa() {   
	Scanner scanner = new Scanner(System.in);  
	  
    System.out.println("Digite o nome:");  
    String nome = scanner.nextLine();
    System.out.println("Digite o telefone:");  
    String telefone = scanner.nextLine();
    System.out.println("Digite o email:");  
    String email = scanner.nextLine();
    
    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());    
      
  }  

}
Arquivo "Main.java":
package ListaPackage;

public class Main {

	public static void main(String[] args) {    
        new Pessoa();
                
	}

}
Até ai tirei 10? Se não for encontrado nenhum erro irei para a próxima etapa, a ArrayList! @EDIT: Entendi 100% do que tá escrito ai, porem, só fiz copiar e colar(de um tópico ai que eu entendi) pra poder postar mais rápido.
Responder

16/01/2012

Douglas Eric

eu te dou um 7.5 Não gostei de criar o Scanner dentro do construtor e Também não gostei do seu construtor não ter parâmetros. Solução melhor seria: Scanner dentro do main; lê o nome, telefone e email e salva em variáveis String cria um construtor que recebe as 3 Strings cria um objeto pessoa, passando as Strings como argumento. A classe pessoa serve só para salvar/retornar as informações, não para lê-las.
Responder

16/01/2012

Renan Zimmer

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.
Responder

16/01/2012

Murilo Lopes

Eu ia perguntar sobre o construtor com as 3 Strings como parâmetros, mas agora vou fazer do jeito que você explicou, logo tô postando!
Responder

16/01/2012

Mathews Motta

Murilo, pense um pouco sobre sua aplicação. Se a sua classe scanner e todas as perguntas estão dentro da classe Pessoa, no construtor, qual é a utilidade do get e set? De nada importa eles se vc está modificando-os por dentro de sua classe! Começa por aí. Deu para ver que vc ainda não quebrou o paradigma estruturado completamente. Você não pode colocar TUDO o que seu programa vai fazer dentro de uma classe. Entende?
Responder

16/01/2012

Renan Zimmer

[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.
Responder

16/01/2012

Douglas Eric

[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.
Responder

16/01/2012

Renan Zimmer

[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/
Responder

16/01/2012

Murilo Lopes

É 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);
e qual a diferença disso acima para isso abaixo?
new Pessoa(nome, telefone, email);
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