Olá, dei uma pesquisada aqui e não encontrei algo relacionado, se tiver me desculpem.
Então estou começando agora, e esse é meu segundo programa em Java, mas costumo programar em C e em PHP, e não creio que o problema seja lógico, e sim sobre a forma de utilizar a linguagem. O problema consiste em Criar uma classe chamada empregado com nome sobrenome e salário, que deve conter o métodos set e get. Ou seja ler os dados informados pelo usuário, e depois dar uma bonificação no salário de 10%. Então fiz ele bonitinho, e copila de boa. Na hora de executar ele pega o nome, pega o sobrenome, e quando coloco o salário ele da erro de buffer e passa direto a próxima entrada. Um erro muito comum em C com a função Scanf, ao qual um %*c resolvia. Bom vou colocar o código aqui, se quiserem me dar uma ajudada =)
Estou usando como IDE o NetBeans.
Classe
package homework2;
/**
*
* @author rafael
*/
public class Empregado {
private String Nome,Sobrenome;
private double Salario;
public void SetNome(String _name){
Nome = _name;
}
public void SetSobrenome(String _sobre){
Sobrenome = _sobre;
}
public void SetSalario(double cash){
if(cash<0)
Salario = 0;
else
Salario = cash;
}
public String GetNome(){
return Nome;
}
public String GetSobrenome(){
return Sobrenome;
}
public double GetSalario(){
return Salario;
}
}
Main
package homework2;
import java.util.Scanner;
/**
*
* @author rafael
*/
public class Main {
public static void main(String args[]) {
Scanner entrada = new Scanner(System.in);
Empregado Emp1 = new Empregado(), Emp2 = new Empregado();
System.out.println("Digite o nome do primeiro empregado:");
Emp1.SetNome(entrada.nextLine());
System.out.println("Digite o sobrenome do primeiro empregado:");
Emp1.SetSobrenome(entrada.nextLine());
System.out.println("Digite o salário do primeiro empregado:");
Emp1.SetSalario(entrada.nextDouble());
System.out.println("Digite o nome do segundo empregado:");
Emp2.SetNome(entrada.nextLine());
System.out.println("Digite o sobrenome do segundo empregado:");
Emp2.SetSobrenome(entrada.nextLine());
System.out.println("Digite o salário do segundo empregado:");
Emp2.SetSalario(entrada.nextDouble());
System.out.printf("O funcionário %s %s recebe: %d\n",Emp1.GetNome(),Emp1.GetSobrenome(),Emp1.GetSalario());
System.out.printf("O funcionário %s %s recebe: %d\n",Emp2.GetNome(),Emp2.GetSobrenome(),Emp2.GetSalario());
Emp1.SetSalario(Emp1.GetSalario()+Emp1.GetSalario()*0.1);
Emp2.SetSalario(Emp2.GetSalario()+Emp2.GetSalario()*0.1);
System.out.printf("Após o aumento, o funcionário %s %s recebe: %d\n",Emp1.GetNome(),Emp1.GetSobrenome(),Emp1.GetSalario());
System.out.printf("Após o aumento, o funcionário %s %s recebe: %d\n",Emp2.GetNome(),Emp2.GetSobrenome(),Emp2.GetSalario());
}
}
A linha 19 da main passa direto. E as linhas 24/25/28/29 não aparecem.
Obrigado.