Ajuda Calculo nos set e get

[b]Estou tentando construir um programinha com parte grafica pra pegar calcular o valor do salario com base no preço das horas… e apos pegar esse salario bruto. descontar os direitos com inss IR… Por Exemplo se o valor for acima de 1000 descontar 10 porcento se for abaixo descontar 8.

só que não to sabendo como aplciar esse calculo aonde coloca lo… se tenho qeu cirar uma nova classe ou só nosso metodos.[/b]

aqui está minha classe

[code]class aula01 {
private double encapHoras;
private double encapValor;
private double encapINSS;
private double encapImpostoIR;

public void SetHoras (double dobHoras){
	encapHoras = dobHoras;
}
public void SetValor (double dobValor){
	encapValor = dobValor;
}


public double GetTGeral(){
	return (encapHoras * encapValor);
}

[/code]

A Instancia

class                        extends JFrame implements ActionListener
{
	aula01 objQtdValor = new aula01();

	JTextField campoHoras;
	JTextField campoValor;
	JTextField campoTotal;


	JLabel labelHoras;
	JLabel labelValor;
	JLabel labelTotal;


    JLabel Lbl1;
    JLabel Lbl2;
    JLabel Lbl3;
    JLabel Lbl4;
    JLabel Lbl5;
    JLabel Lbl6;
    JLabel Lbl7;
    JLabel Lbl8;
    JButton btnCalcular;
    JButton btnLimpar;

    public static void main (String[]args)
	{
	JFrame Janela = new QtdxValorGui_ExecAula();
	Janela.show();

	WindowListener x = new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		};
		Janela.addWindowListener(x);
	}

	QtdxValorGui_ExecAula()
	{

		setTitle("Qtde. x Valor");
		setSize (500,250);
 		setLocation(50,50);
 		getContentPane().setBackground(new Color(150,150,150));
 		getContentPane().setLayout(new GridLayout(5,2));



	campoValor = new JTextField();
    campoHoras  = new JTextField();
    campoTotal = new JTextField();


     labelHoras = new JLabel("Digite as Horas");
     labelValor = new JLabel("Digite o custo da hora:");
     labelTotal = new JLabel("Total Com Desconto:");

        Lbl1        = new JLabel("");
        Lbl2        = new JLabel("");
        Lbl3        = new JLabel("");
        Lbl4        = new JLabel("");
        Lbl5        = new JLabel("");
        Lbl6        = new JLabel("");
        Lbl7        = new JLabel("");
        Lbl8        = new JLabel("");
        btnCalcular = new JButton("Calcular");
        btnLimpar   = new JButton("Limpar");


   btnCalcular = new JButton ("Calcular"); btnCalcular.addActionListener(this);
	btnLimpar   = new JButton ("Limpar");   btnLimpar.addActionListener(this);
	campoTotal.setEditable(false);

	getContentPane().add(labelHoras);  getContentPane().add(campoHoras);;

    getContentPane().add(labelValor);      getContentPane().add(campoValor);


    getContentPane().add(Lbl3);       getContentPane().add(Lbl4);

    getContentPane().add(labelTotal);  getContentPane().add(campoTotal);

    getContentPane().add(btnLimpar); getContentPane().add(btnCalcular);
	}

    public void actionPerformed(ActionEvent e)
	{
		if (e.getSource() == btnLimpar)
		{
			campoHoras.setText("");
            campoValor.setText("");
            campoTotal.setText("");
			return;
		}

		float Horas1 = 0;
        float Valor1 = 0;
        double Total = 0;
     
        try
		{
			Horas1 = Float.parseFloat(campoHoras.getText());
		    Valor1 = Float.parseFloat(campoValor.getText());

	    }

		catch(NumberFormatException erro)
		{
			campoTotal.setText("Erro");
			return;

		}

		if (e.getSource()== btnCalcular)
		{
			objQtdValor.SetHoras(Horas1);
			objQtdValor.SetValor(Valor1);

			Total = (objQtdValor.GetTGeral());
	
		}
		campoTotal.setText(""+Total);
	}
}

Qual o rumo eu teria que tomar? alguem pode dar um exemplo. Agradeço ( ele está funcionando normal, só não consigo passar para a parte do desconto).

Leia isso, com codigo assim ninguem tem vontade de te ajudar

Peço perdão pela falha… já corrigi… espero que fique mais facil a visualização agora.

if (salario > 1000) { // Algoritmo para descontar 10% } else if (salario > 0 && salario < 1000) { // Algoritmo para descontar 8% }

Usei o else if pois nao sei se voce esta validando valores menores que 0 no input.

No exemplo mais simples vc tem um objeto para armazenar seus dados (Value Object = VO), o objeto responsável por trabalhar seus dados (business object = BO) e a interface gráfica.

Vc podia fazer primeiro com valores fictícios. Sem interface gráfica. No fundo vc só precisa do VO e o BO para fazer seus testes.
O main popula seu VO, executa o BO jogando o VO como parametro e finalmente dá o resultado (interface gráfica ou println).

Para pesquisar:
Value objects VO (aula01)
business object BO (vc misturou com a interface)

Olá amigo. a questão não é a logica do calculo… mas sim aonde aplicar ele, se vou ter que criar uma nova calsse… ou apenas adicionar novos metodos. isso que não to conseguindo desenvolver

Onde voce seta o valor do salario ? voce pode por a logica la mesmo, sem problemas, ou entao da um getSalario e passa-lo num metodo responsavel por um calculo, so bata criar um metodo que faça isso.

No exemplo mais simples vc tem um objeto para armazenar seus dados (Value Object = VO), o objeto responsável por trabalhar seus dados (business object = BO) e a interface gráfica.

Vc podia fazer primeiro com valores fictícios. Sem interface gráfica. No fundo vc só precisa do VO e o BO para fazer seus testes.
O main popula seu VO, executa o BO jogando o VO como parametro e finalmente dá o resultado (interface gráfica ou println).

Para pesquisar:
Value objects VO (aula01)
business object BO (vc misturou com a interface)
[/quote]

Então, é que agora estou aprendendo com a interface gráfica… então preciso desenvolver com a interface grafica… cheguei até essa parte…com o valor o valor bruto no GetTGeral()…
só que não estou conseguindo desenvolver… pensar aonde vou colocar o if… o calculo… se vou ter que criar uma nova classe, se vou só criar os metods na mesma classe. porque o valor está no getTGeral()

O GetGeral retorna um valor, voce pode criar outro metodo que calcule as porcentagens em outra classe OU nao, e passar o GetGeral como parametro, vo te da um exemplo:

public double GetTGeral(){  
        double salario = encapHoras * encapValor;
        if (salario > 1000) {
           salario = salario - ((salario * 10) / 100);
        } else {
           salario = salario - ((salario * 8) / 100);
        }
        return salario;   
}  

Mel na chupeta :smiley:

Então cara… é isso que to tentando te falar.

Separa tudo em Vo e BO, depois que vc faz sua interface. Exemplo:

package bovo;
public class Vo
{
	private int numero1;
	private int numero2;
	public int getNumero1()
	{
		return numero1;
	}

	public void setNumero1(int numero1)
	{
		this.numero1 = numero1;
	}

	public int getNumero2()
	{
		return numero2;
	}

	public void setNumero2(int numero2)
	{
		this.numero2 = numero2;
	}
}

//================================================
package bovo;
public class Bo
{	
	public int getResult(Vo a1, Vo a2)
	{
		return a1.getNumero1()*a2.getNumero2();
	}
}

//================================================
package bovo;
public class BoVo
{
	public static void main(String[] args)
	{		
		// populando vo para um teste
		Vo a1 = new Vo();
		a1.setNumero1(8);
		a1.setNumero2(7);
		
		// fazendo trabalho (bo)
		Bo bo = new Bo();
		int resp = bo.getResult(a1, a1);
		
		// imprimindo
		System.out.print(resp);
	}
}

O vo são valores para serialização. Não precisa por formulas lá. A não ser que sejam formulas bem simplezinhas como operações ou conversões.

As formulas complexas devem ficar no BO.

Muito Obrigado… Irei tentar aqui… baseado nas duas ajudas!