Não estou conseguindo entender a Classe EmpAssalariado

4 respostas
linhorj

Olá pessoal, boa noite!
Estou estudando JAVA na faculdade e fazendo aqui uma revisão me deparei com o código abaixo.
Minha dúvida está nessa linha:

public double salario(double abono){
return (getSalarioMensal());
}
pois o resultado é igual ao seguinte metodo:
public double salario(){
return (getSalarioMensal());
}

Qual a finalidade do professor ter colocado o metodo dessa forma:
public double salario(double abono){
return (getSalarioMensal());
}

public class EmpAssalariado extends Empregado {
	private double salarioMensal;
	
	public EmpAssalariado(String nome, String sobrenome, String cpf, double salarioMensal){
		super(nome, sobrenome, cpf);
		setSalarioMensal(salarioMensal);		
	}
	public void setSalarioMensal(double salarioMensal){
		this.salarioMensal = salarioMensal;
	}
	public double getSalarioMensal(){
		return salarioMensal;
	}
	public double salario(){
		return (getSalarioMensal());
	}
	public double salario(double abono){
		return (getSalarioMensal());
	}
	public String toString(){
		return String.format(
			"%s%s %s\n%s%s\n%s%.2f\n%s%.2f\n",
			"Identificação: ", nome, sobrenome,
			"CPF: ", cpf, 
		    "Salario total: ", salario(),
			"Salario total com abono: ", salario(400));
	}
}
Aqui segue a classe Principal:
public class Principal {

	public static void main(String[] args) {
		EmpFixoComissionado empregadoFC = new EmpFixoComissionado("Roberto", "Silveira", "123456789-10", 10000, 0.02, 0.01,
			300);
		EmpComissionado empregadoC = new EmpComissionado("Francisco", "Oliveira", "987654321-00", 20000, 0.02, 0.01);
		EmpAssalariado empregadoA = new EmpAssalariado("Joaquim", "Alberto", "192837465-99", 500);
		
		System.out.printf("\n%s: \n\n%s\n\n",
		"Informações do empregado assalariado:", empregadoA.toString());
	}	
}

4 Respostas

D

public double salario(){ return (getSalarioMensal()); } public double salario(double abono){ return (getSalarioMensal() + abono); }

Parece que ele esqueceu de somar o abono, assim ficaria desse jeito aí.

willricardo

++

xxjamisxx
bem o que vejo que ele esta passando por parametro

para getsalariomesal()

o abono

e a outra funçao ele nao passa valor nenhum

pq poder ser decalha dois metodos

como mesmo nome

mais com paramentro diferente

tipo

public  double   getsalariomensal()

{

return    ele passa o valor mais nao passa nenhum paramentro
}

public double getsalariomensal(double getsalariomensal)

{

aqui ele passa por paramentro

}

se ele passa um valor o valor vai cai do getsalariomensal
pq esta passando por parametro
pensa assim se ele nao passa nenhum valor
entao cai no primeiro get
entao nunca vai cai no primiero get nenhum
valor por isso ele mando por paramentro
para getsalariomensal() ;

isso ser chama sobrecarga metodos

outro exemplo simples tipo

public string getsalario(string salario)
{

}

public double getsalario(double salario)
{

}

e o mesmo nome
mais com tipo diferente
se ele passa uma string cai no metodo da string
se ele passa um double cai no metodo do double

espero te ajudo
acredito que foi isso que ele
quiz ensina
se nao foi desculpa
pelo menos se aprendeu algum novo
^^
flw abraço

linhorj

Bacana xxjamisxx!
Vc chamou que o código do meu professor é uma sobrecarga de metodo.
Eu entendi perfeitamente a sua explicação.
A sobrecarga existe apenas para metodos? Explique mais sobre sbrecarga.

Desde já agradeço pela ajuda.

<blockquote><div class="quote-author">xxjamisxx:</div>bem o que vejo que ele esta passando por parametro

para getsalariomesal()

o abono

e a outra funçao ele nao passa valor nenhum

pq poder ser decalha dois metodos

como mesmo nome

mais com paramentro diferente

tipo

public  double   getsalariomensal()

{

return    ele passa o valor mais nao passa nenhum paramentro
}

public double getsalariomensal(double getsalariomensal)

{

aqui ele passa por paramentro

}

se ele passa um valor o valor vai cai do getsalariomensal
pq esta passando por parametro
pensa assim se ele nao passa nenhum valor
entao cai no primeiro get
entao nunca vai cai no primiero get nenhum
valor por isso ele mando por paramentro
para getsalariomensal() ;

isso ser chama sobrecarga metodos

outro exemplo simples tipo

public string getsalario(string salario)
{

}

public double getsalario(double salario)
{

}

e o mesmo nome
mais com tipo diferente
se ele passa uma string cai no metodo da string
se ele passa um double cai no metodo do double

espero te ajudo
acredito que foi isso que ele
quiz ensina
se nao foi desculpa
pelo menos se aprendeu algum novo
^^
flw abraço

Criado 3 de novembro de 2009
Ultima resposta 4 de nov. de 2009
Respostas 4
Participantes 4