[DÚVIDA] - Construtores

21 respostas
M

Olá,
Estou tentando entender o funcionamento de construtores, alguém poderia me dizer o que está errado ?

public class Exercicio5 {
	public static void main (String[] args) {
	  String nome, endereco, CEP, UF, telefone, CPF;
	  Exercicio5(nome, endereco, CEP, UF, telefone, CPF) {
	 	this.nome=nome;
		this.endereco=endereco;
		this.CEP=CEP;
		this.UF=UF;
		this.telefone=telefone;
		this.CPF=CPF;
	 }
  }
	
	Exercicio5 teste = new Exercicio5("a", "b", "c", "d", "e", "");
	System.out.println("Nome: "+ nome + "\nEndereço: "+endereco+ "\nCEP: "+CEP+ "\nUF: "+UF+ "\nTelefone: "+telefone+"\nCPF: "+CPF);
}

Está apresentando erro em quase todas linhs, logo creio que esteja completamente errado, o que quero fazer é basicamente definir um nome, endereço, CPF, etc. e depois apresentar os dados.

Obrigado a todos pela atenção.

21 Respostas

pimenta
public Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){
//código do construtor...
M

Apareceu um erro no início da classe Teste.
“Multiple markers at this line”

pimenta

Coloca aí como tá seu código agora…

M

pimenta:
public Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){ //código do construtor...

Minha dúvida é: onde devo “chamar” o construtor ?
eu fiz assim :

public class Exercicio5 {
	public static void main (String[] args) {
	 

	String nome;
	String endereco;
	String CEP;
	String UF;
	String telefone;
	String CPF;
	 Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){
	   	this.nome=nome;
		this.endereco=endereco;
		this.CEP=CEP;
		this.UF=UF;
		this.telefone=telefone;
		this.CPF=CPF;
	 }
  
	
	Exercicio5 teste = new Exercicio5("a", "b", "c", "d", "e", "");
	System.out.println("Nome: "+ nome + "\nEndereço: "+endereco+ "\nCEP: "+CEP+ "\nUF: "+UF+ "\nTelefone: "+telefone+"\nCPF: "+CPF);
  }
}

Mas apareceram erros em :

Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){

e

Exercicio5 teste = new Exercicio5("a", "b", "c", "d", "e", "");

Obrigado.

M

@kamikazeishida
Obrigado pela sua ajuda, mas eu não quero usar métodos, apenas construtores.

pimenta
public class Exercicio5 {  
	String nome,endereco,CEP,UF,telefone,CPF;  //Declaração de variáveis globais
 
	public Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){  //Declaração do contrutor..
		this.nome=nome;  
		this.endereco=endereco;  
		this.CEP=CEP;  
		this.UF=UF;  
		this.telefone=telefone;  
		this.CPF=CPF;  
	}
	public static void main (String[] args) {  //Método main...
		Exercicio5 teste = new Exercicio5("a", "b", "c", "d", "e", "");  
		System.out.println("Nome: "+ nome + "\nEndereço: "+endereco+ "\nCEP: "+CEP+ "\nUF: "+UF+ "\nTelefone:"	+telefone+"\nCPF: "+CPF);  
	}  
}
M

Está apresentando erro na linha do System.out.println: “Multiple Markes at this line”.

PS.: Os construtores sempre vêm antes do main ?

pimenta
System.out.println("Nome: "+ teste.nome + "\nEndereço: "+teste.endereco+ "\nCEP: "+teste.CEP+ "\nUF: "+teste.UF+ "\nTelefone:"  +teste.telefone+"\nCPF: "+teste.CPF);

Cosntrutores são métodos diferenciados, mas são métodos, portanto sua declaração é no corpo da classe e não no corpo de nenhum outro método.

Abraços,

M

Agora está aparecendo: Could not find the main class.

Obrigado pela ajuda.

pimenta

Coloca o código completo e cola o erro aqui.

M
public class Exercicio5 {  
	String nome,endereco,CEP,UF,telefone,CPF;
 
	public Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){  //Declaração do contrutor..
		this.nome=nome;  
		this.endereco=endereco;  
		this.CEP=CEP;  
		this.UF=UF;  
		this.telefone=telefone;  
		this.CPF=CPF;  
	}
	public static void main (String[] args) {  
		Exercicio5 teste = new Exercicio5("a", "b", "c", "d", "e", "");  
		System.out.println("Nome: "+ teste.nome + "\nEndereço: "+teste.endereco+ "\nCEP: "+teste.CEP+ "\nUF: "+teste.UF+ "\nTelefone:"  +teste.telefone+"\nCPF: "+teste.CPF);  
	}  
}

Could not find the main class. Program will exit.

pimenta

Você tá fazendo alguma coisa errada, porque aqui funcionou.

Abre o prompt
Acessa o diretório que o Exercicio5.java está salvo
Digita javac Exercicio5.java
Digita java Exercicio5

Abraços,

M

Pelo javac deu certo, mas pelo Eclipse, não.

Ironlynx

Pimenta, só uma coisinha: pela definição da linguagem(JLS) construtores NÂO são métodos, nem mesmo especiais.Só a JVM o vê como “um método especial”, mas é só lembrar que ele não possui retorno, não pode ser chamado mais de uma vez, não é herdado, não pode ser usado todos os modificadores… isso confunde quem tá começando pacas, mas lembre-se: construtor não é método.

M

Pimenta, só uma coisinha: pela definição da linguagem(JLS) construtores NÂO são métodos, nem mesmo especiais.Só a JVM o vê como “um método especial”, mas é só lembrar que ele não possui retorno, não pode ser chamado mais de uma vez, não é herdado, não pode ser usado todos os modificadores… isso confunde quem tá começando pacas, mas lembre-se: construtor não é método.

Acabei de ler isso em uma apostila ^^

pimenta

Vou reclamar com Kathy Sierra e Bert Bates então, porque numa das passagens do livro deles diz que “Construtores são métodos especiais.”, sendo assim isso leva a crer que eles são métodos, porém especiais.

Mas á que você disse que na JLS não está isso retiro o que eu disse e peço desculpas pelo engano…

Abraços,

M

Obrigado pelo ajuda, Pimenta.
Apesar de não estar rodando no Eclipse, se está funcionando com o javac, deve sestar certo, Obrigado.

pimenta

Cara, testei aqui no Eclipse e rodou também.
Não é o tipo de projeto que você criou?

M

O tipo de projeto estava certo, porém eu exclui ele e criei um novo, colei o código e funcionou normalmente.
Mais uma vez obrigado pela ajuda, abraços.

Kamikaze

Faça assim:

public class Exe {
	
	
	private String nome;
	private String endereco;
	private String CEP;
	private String UF;
	private String telefone;
	private String CPF; 
	

	/**
	 * @param nome
	 * @param endereco
	 * @param cep
	 * @param uf
	 * @param telefone
	 * @param cpf
	 */
	public Exe(String nome, String endereco, String cep, String uf,
			String telefone, String cpf) {
		this.nome = nome;
		this.endereco = endereco;
		this.CEP = cep;
		this.UF = uf;
		this.telefone = telefone;
		this.CPF = cpf;
	}



	/**
	 * @return the nome
	 */
	public String getNome() {
		return nome;
	}



	/**
	 * @param nome the nome to set
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}



	/**
	 * @return the endereco
	 */
	public String getEndereco() {
		return endereco;
	}



	/**
	 * @param endereco the endereco to set
	 */
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}



	/**
	 * @return the cEP
	 */
	public String getCEP() {
		return CEP;
	}



	/**
	 * @param cep the cEP to set
	 */
	public void setCEP(String cep) {
		CEP = cep;
	}



	/**
	 * @return the uF
	 */
	public String getUF() {
		return UF;
	}



	/**
	 * @param uf the uF to set
	 */
	public void setUF(String uf) {
		UF = uf;
	}



	/**
	 * @return the telefone
	 */
	public String getTelefone() {
		return telefone;
	}



	/**
	 * @param telefone the telefone to set
	 */
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}



	/**
	 * @return the cPF
	 */
	public String getCPF() {
		return CPF;
	}



	/**
	 * @param cpf the cPF to set
	 */
	public void setCPF(String cpf) {
		CPF = cpf;
	}

	
}

classe teste

public class Teste {
	public static void main(String[] args) {
		Exe exe = new Exe("a", "b", "c", "d", "e", "");
		
		
		System.out.println("Nome: "+ exe.getNome() + "\nEndereço: "+exe.getEndereco() + "\nCEP: "+exe.getCEP()+ "\nUF: "+ exe.getUF()+ "\nTelefone: "+exe.getTelefone()+"\nCPF: "+exe.getCPF());

	}
}
Kamikaze

Blz kara entao ai vai:

public class Exercicio5 {
	String nome,endereco,CEP,UF,telefone,CPF;  //Declaração de variáveis globais
	 
	public Exercicio5(String nome, String endereco, String CEP, String UF, String telefone, String CPF){  //Declaração do contrutor..
		this.nome=nome;  
		this.endereco=endereco;  
		this.CEP=CEP;  
		this.UF=UF;  
		this.telefone=telefone;  
		this.CPF=CPF;  
	}
	public static void main (String[] args) {  //Método main...
		Exercicio5 teste = new Exercicio5("a", "b", "c", "d", "e", "");  
		System.out.println("Nome: "+ teste.nome + "\nEndereço: "+teste.endereco+ "\nCEP: "+teste.CEP+ "\nUF: "+teste.UF+ "\nTelefone:"	+teste.telefone+"\nCPF: "+teste.CPF);  
	}  
}
Criado 28 de maio de 2008
Ultima resposta 28 de mai. de 2008
Respostas 21
Participantes 4