Ajuda com programa que herda e precisa alterar no set'nome método'

3 respostas
L

olá, criei uma classe abstrata chamada Empregado, com atributos com emcapsulamentos máximo mas depois precisei criar um classe concreta chamada EmpregadoCLT que altera o salario base setSbase(float sbase) e deve fazer assim:
o novo saário informado(passado por parâmetro)só pode ser maior que o atual, caso contrário deve ser retornada a mensagem apropriada, como faço??

olha a classe empregado:
abstract class Empregado{

private int matricula;

private String nome;

private float sbase;

private float desc;
//construtor

public Empregado(int matricula, String nome, float sbase,float desc)

{this.matricula = matricula;

this.nome = nome;

this.sbase = sbase;

this.desc = desc;}
//Emcapsulamento

public int getMatricula()

{return (this.matricula);}

public void setMatricula(int matricula)

{this.matricula = matricula;}

public String getNome()

{return (this.nome);}

public void setNome(String nome)

{this.nome =  nome;}

public float getSbase()

{return (this.sbase);}

public void setSbase(float sbase)

{this.sbase = sbase;}

public float getDesc()

{return (this.desc);}

public void setDesc(float desc)

{this.desc = desc;}
//Métodos

public double salarioLiquido()

{return (sbase * (1 - desc/(float)100));}

//mostrarDados

public void mostrarDados()

{System.out.println(A matricula+getMatricula());//deve ser matricula ou getMatricula()?

System.out.println(O nome+getNome());

System.out.println(O salario base+getSbase());

System.out.println(O desconto INSS+getDesc());}

}//classe Empregado

[color=red][/color]

e olha a classe EmpregradoCLT:
class EmpregadoCLT extends Empregado{

//construtor

public EmpregadoCLT(int matricula, String nome, float sbase,float desc)

{super(matricula, nome,sbase,desc);}
public void setSbase(float sbase)

{if (sbase > super.getSbase(float base))

this.sbase = sbase;

else

{System.out.print(O salario novo nao eh maior que o atual!);}

}

}//class
mas sei que não est;a correto, alguém pode dar uma luz?

3 Respostas

dsfextreme
public void setSbase(float sbase) 
{if (sbase > super.getSbase(float base)) 
this.sbase = sbase; 
else 
{System.out.print("O salario novo nao eh maior que o atual!");} 
} 

}//class

Pq vc não altera seu método , ao invés de void p / Boolean
se retornar verdadeiro é porque atualizou o salario , se não retorna falso.
Ai vc testa na sua aplicação caso retorne falso vc coloca a mensagem.
Assim a mensagem fica fora do método que atualiza o salário.

L

pode ser mas como coloco para aparecer essa mensgem se for falso já que se for usar o boolean vou ter que tiraro if e essa mensagem tem que sair entede?como faço?

dsfextreme
public void setSbase(float sbase)  {
        this.sbase = sbase; 
 } 
 
//coloca um botão aqui para invocar o evento

if (sbase > super.getSbase() ){
    setSbase(sbase) ;  
 }else {
    System.out.print("O salario novo nao eh maior que o atual!");
    }

Um Abraço !

Criado 11 de maio de 2006
Ultima resposta 11 de mai. de 2006
Respostas 3
Participantes 2