Ajuda com metodos (construtor)

3 respostas
Y

Olá pessoal… sou iniciante no java e meu professor me passou um exercicio segue abaixo:

// Criar uma classe chamada computador com as seguintes
//características 3 atributos(coddamaquina,descricaodoprocessador e quantidade em estoque).
//Deve possuir um método construtor que inicializa os atributos.
//Esta classe também possui 2 metodos para exibir seus atributos exibeAtributo.
//O primeiro método não recebe argumentos e nem retorna;
// o segundo método deve ler as informações digitadas pelo usuário,
// associa-las aos atributos da classe e, logo a seguir,exibi-las na tela.

import java.io.*;
public class Computador
{
int codMaquina;
String descricaoDoProcessador;
double quantidadeEmEstoque;

InputStreamReader t = new InputStreamReader(System.in);
BufferedReader ler = new BufferedReader(t); 

Computador(){System.out.println("METODO VAZIO");}

Computador(int x, String descricao,double y)
{
this.codMaquina = x;
this.descricaoDoProcessador = descricao;
this.quantidadeEmEstoque = y;
}

} 

public void exibeAtributo(int x,String descricao, double y)
{
Try
{
System.out.println("Digite o Codigo da Maquina: ");
x = Integer.parseInt(ler.readLine());


System.out.println("Digite a Descricao do processador: ");
descricao = ler.readLine();


System.out.println("Digite a Quantidade em Estoque: ");
y = Double.parseDouble(ler.readLine());

}

catch(Exception e){System.out.println("ERRO NA LEITURA"); System.exit(0);}

System.out.println("Codigo da maquina: " +codMaquina);
System.out.println("Descricao do processador: " +descricaoDoProcessador);
System.out.println("Quantidade em estoque: " +quantidadeEmEstoque);
}

}

minha duvida é a seguinte: não estou conseguindo colocar p/ receber os valores no metodo exibeAtributo… o que estou fazendo de errado??

ps: tem outro programinha com a main p/ pode rodar.
desde ja agradeço
yves

3 Respostas

D

bom dia…

esse método:

public void exibeAtributo(int x,String descricao, double y){
try{
System.out.println("Digite o Codigo da Maquina: ");
x = Integer.parseInt(ler.readLine());
System.out.println("Digite a Descricao do processador: ");
descricao = ler.readLine();
System.out.println("Digite a Quantidade em Estoque: ");
y = Double.parseDouble(ler.readLine());
}catch(Exception e){System.out.println("ERRO NA LEITURA"); System.exit(0);}
System.out.println("Codigo da maquina: " +codMaquina);
System.out.println("Descricao do processador: " +descricaoDoProcessador);
System.out.println("Quantidade em estoque: " +quantidadeEmEstoque);
}

vc recebeu 3 atributos…depois sobreescreveu o valor deles…e no final exibiu os atributos da classe q. não foram modificados…
agora…se vc fizesse assim…

public void exibeAtributo(){
try{
System.out.println("Digite o Codigo da Maquina: ");
this.codMaquina = Integer.parseInt(ler.readLine());
System.out.println("Digite a Descricao do processador: ");
this.descricaoDoProcessador = ler.readLine();
System.out.println("Digite a Quantidade em Estoque: ");
this.quantidadeEmEstoque = Double.parseDouble(ler.readLine());
}catch(Exception e){System.out.println("ERRO NA LEITURA"); System.exit(0);}
System.out.println("Codigo da maquina: " +codMaquina);
System.out.println("Descricao do processador: " +descricaoDoProcessador);
System.out.println("Quantidade em estoque: " +quantidadeEmEstoque);
}

vc nao precisa receber argumentos nesse método…pq vc vai digitá-los
vc digita e armazena o valor digitado nos atributos da classe…logo qdo for exeibi-los eles estarão com os valores q. vc digitou…

bom…espero ter ajudado!

t+

Y

huhull colocando o segundo bloco de codigo ele compilou sem problemas!!

segue o codigo como está agora

import java.io.*;
public class Computador
{
	int codMaquina;
	String descricaoDoProcessador;
	double quantidadeEmEstoque;
	
	InputStreamReader t = new InputStreamReader(System.in);
	BufferedReader ler = new BufferedReader(t); 
	
	
		Computador(){System.out.println("METODO VAZIO");}
	
	Computador(int x, String descricao,double y)
	{
		this.codMaquina = x;
		this.descricaoDoProcessador = descricao;
		this.quantidadeEmEstoque = y;
	}
	
	
	public void exibeAtributo()
	{ 
	try{ 
		System.out.println("Digite o Codigo da Maquina: "); 
		this.codMaquina = Integer.parseInt(ler.readLine()); 

		System.out.println("Digite a Descricao do processador: "); 
		this.descricaoDoProcessador = ler.readLine(); 

		System.out.println("Digite a Quantidade em Estoque: "); 
		this.quantidadeEmEstoque = Double.parseDouble(ler.readLine()); 
		}

	catch(Exception e){System.out.println("ERRO NA LEITURA"); System.exit(0);} 

		System.out.println("Codigo da maquina: " +codMaquina); 
		System.out.println("Descricao do processador: " +descricaoDoProcessador); 
		System.out.println("Quantidade em estoque: " +quantidadeEmEstoque); 
	} 
	
	
	
}

mass ai vem o seguinte… hahaha

fazendo esse tipo q vc me falou eu nao precisaria dessa classe

Computador(int x, String descricao,double y)
	{
		this.codMaquina = x;
		this.descricaoDoProcessador = descricao;
		this.quantidadeEmEstoque = y;
	}

não é verdade??

e outra coisa… como eu construo os objetos na main…?? eu andei tentando… óó

public class ExComputador
{
	public static void main(String args[])
	{
		Computador obj1 = new Computador();
		System.out.println(obj1.codMaquina);
		
		exibeAtributo obj2 = new exibeAtributo();
		System.out.println(obj2.exibeAtributo);

	}
}

mt obrigado pela ajuda.

D

O construtor que vc declarou recebe atributos…logo na construção do objeto na main vc tem q. pasar esse atributos…

.....
      System.out.println("Digite o Codigo da Maquina: ");
      int codigo = Integer.parseInt(ler.readLine());

      System.out.println("Digite a Descricao do processador: ");
      String processador = ler.readLine();

      System.out.println("Digite a Quantidade em Estoque: ");
      double  estoque = Double.parseDouble(ler.readLine()); 

      Computador pc = new Computador(codigo,processador,estoque);
....

Aqui no site tem a sessão de tutoriais…onde vc pode melhorar os seus conhecimentos…
dá uma olhadinha ali… :wink:

t+

Criado 4 de maio de 2007
Ultima resposta 4 de mai. de 2007
Respostas 3
Participantes 2