[Dúvida] Como instanciar um construtor através da entrada de dados do usuário

1 resposta
P
Estou com uma pequena dúvida sobre como instanciar um construtor através da classe Scanner. Olhem um pequeno exemplo de teste que eu fiz e não sei se essa maneira está de acordo com as normas do java:
package pkgContraChque;

public class ContraCheque {
	private String matricula;
	private String nome;
	private double salario;
	
	/*public ContraCheque(String mat,String no,double sal){
		setMatricula(mat);
		setNome(no);
		salario=sal;
	}*/
	
	public ContraCheque(){
	}
	
	
	public double getSalario() {
		return salario;
	}


	public void setSalario(double salario) {
		this.salario = salario;
	}
	
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	public String getMatricula() {
		return matricula;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getNome() {
		return nome;
	}


	public double salarioBasico(){
		double salario_total;
		salario_total=salario*40;
		return salario_total;
	}
	public double descontoINSS(){
		double desconto;
		desconto=salarioBasico()*0.09;
		return desconto;
	}
	public double descontoImpostoDeRenda(){
		double desconto_total;
		desconto_total=(salarioBasico()-descontoINSS())*0.15;
		return desconto_total;
	}
	public void imprimesalario(){
		System.out.printf("Salario:%.02f\n",(salarioBasico()-descontoINSS()-descontoImpostoDeRenda()));
		System.out.println("salario Basico:"+salarioBasico());
		System.out.println("Desconto INSS:"+descontoINSS());
		System.out.println("Desconto Imposto de Renda:"+descontoImpostoDeRenda());
		
	}
	
}

Como vocês podem ver, tem dois construtores, o primeiro era o que eu havia feito, porém não consegui instanciá-lo com
entrada de dados na próxima classe que mostrarei, ai eu criei um construtor vazio e alterei os valores dos atributos com
os métodos sets, como vcs podem ver a seguir:

Classe main
package pkgContraChque;

import java.util.Scanner;

public class SalarioTeste {

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		//ContraCheque s1 =new ContraCheque("1010","Sebastiao",9);
		//s1.imprimesalario();
		
		
		ContraCheque c1 = new ContraCheque();
		
		System.out.println("Para iniciar digite os dados requeridos!" + "\n");
		System.out.println("Matrícula: ");
		c1.setMatricula(input.next());
		System.out.println("Nome: ");
		c1.setNome(input.next());
		System.out.println("Salario: ");
		c1.setSalario(input.nextDouble());
		
		c1.imprimesalario();
	
		
	}

}
A parte comentada era como que instanciava o primeiro construtor que criei, e o resto instancia o construtor vazio.

O programa roda certinho, mas como não sei está certo, melhor pedir ajuda de vcs.

E gostaria de saber tbm como instanciar um construtor não vazio com dados do usuário.

Grato

1 Resposta

kiq095

nao sei quanto as outras pessoas mais eu deixo esse primeiro construtor em branco ... so utilizo ele em utimo caso

por ex...

public class Test{

private String  Nome="";

     public Test(){
// deixo ele em branco ....
      }
// ai faço outro e chamo como quiser 

    public void NOME(String Nome){

       this.Nome=Nome+"TEST DE CLASSE JAVA ";

   }

public void getNome() {  
        return Nome;  
    }  

public void setNome(String Nome ){

  this.Nome=Nome

}


}

e no metodo main e so chamar a classe pasando pra ela o valor ...

tipo assim ..
Test classe =new Test(); // cria uma nova classe 

classe.Nome("KIQ095");// chama o metodo pasando o valor

System.out.println(classe.getNome);// recupera o  valor no get da classe


//RESPOSTA

KIQ095 TEST DE CLASSE JAVA

olha e ve se isso te atende ..!

Criado 28 de março de 2011
Ultima resposta 28 de mar. de 2011
Respostas 1
Participantes 2