Dúvida

Pessoal, estou com uma dúvida. Por que esse codigo não compila?

Os seguintes erros são informados:

extend.java:29: ‘:’ expected
double getBonificacao()
extend.java:57: reached end of file while parsing
} ->

Agradeço desde já.

[code]class Funcionario
{
protected String nome;
protected String cpf;
protected double salario;

double getBonificacao()
{
	return this.salario * 0.10;
}

}

class Gerente extends Funcionario
{
int senha;

public boolean autentica(int senha)
{
	if (this.senha == senha)
	{
		System.out.println("Acesso Permitido");
		return true;
	}
	else
	{
		System.out.println("Acesso Negado");
		return false;
	}
double getBonificacao()
{
	return this.salario * 0.15;
}

}

class Extends
{
public static void main(String[] args)
{
Funcionario a = new Funcionario();
a.nome = “Antonio”;
a.cpf = “9999999999”;
a.setSalario(4700);

	getBonificacao();

	Gerente b = new Gerente();
	b.nome = "Kleber";
	b.cpf = "88211241981";
	b.salario = 8300;

	getBonificacao();
	System.out.println(b.salario);
}

}[/code]

Cara,

Tinham alguns problemas no seu código, o compilador deu erro na linha 29 porque você não tinha fechado o método anterior (autentica), então ele pensou que vc ainda estava descrevendo o método. Outra coisa é que não existia o método setSalario na classe Funcionario. Outra coisa ainda é que o método getBonificacao está descrito na classe Funcionario e não na classe Extends, o que faria as linhas 47 e 55 falharem na compilação.

Segue seu código corrigido.

Flw,
Renan

class Funcionario {
	protected String nome;
	protected String cpf;
	protected double salario;

	double getBonificacao() {
		return this.salario * 0.10;
	}
	
	public void setSalario(double salario){
		this.salario = salario;
	}
}

class Gerente extends Funcionario {
	int senha;

	public boolean autentica(int senha){  
		if (this.senha == senha){  
			System.out.println("Acesso Permitido");  
			return true;  
		}else{  
			System.out.println("Acesso Negado");  
	  		return false;  
		}
	}
	double getBonificacao() {
		return this.salario * 0.15;
	}

}

class Extends {
	public static void main(String[] args) {
		Funcionario a = new Funcionario();
		a.nome = "Antonio";
		a.cpf = "9999999999";
		a.setSalario(4700);

		a.getBonificacao();

		Gerente b = new Gerente();
		b.nome = "Kleber";
		b.cpf = "88211241981";
		b.salario = 8300;

		a.getBonificacao();
		System.out.println(b.salario);
	}
}

Bom Dia aeee…

Então cara eu vi alguns erros tb no seu código:

1 - Não existe o método setSalario(Double salario);
2 - O método main deve estar contido na classe cujo nome do arquivo .class represente-a (no caso na classe funcionário)
3 - Vc colocou o método getSalario do Gerente depois do método autentica, sendo que autentica retorna true ou false e finaliza o processamento da classe por isso não chegava ao getSalario();

Segue código corrigido tb…

class Funcionario {
	protected String nome;
	protected String cpf;
	protected double salario;

	double getBonificacao() {
		return this.salario * 0.10;
	}
	
               //ficou meio estranho aqui...mas seria o certo
	public static void main(String []args){
		Funcionario a = new Funcionario();
		a.nome = "Antonio";
		a.cpf = "9999999999";
		a.salario = 4700;

		a.getBonificacao();

		Gerente b = new Gerente();
		b.nome = "Kleber";
		b.cpf = "88211241981";
		b.salario = 8300;

		b.getBonificacao();
		System.out.println(b.salario);
	}
}

class Gerente extends Funcionario {
	int senha;

	double getBonificacao() {
		return this.salario * 0.15;
	}

	public boolean autentica(int senha) {
		if (this.senha == senha) {
			System.out.println("Acesso Permitido");
			return true;
		} else {
			System.out.println("Acesso Negado");
			return false;
		}
	}
}

class Contratacao{
	public static void main(String []args){
                 //Aqui a JVM não acha o método main (eu acho q não...)
	}
}

Como o colega renandemelo disse acima,
existiam alguns erros no seu código…
eu ia postar os erros, mas o renandemelo já os corrigiu…

Att…

Valeu Renan!

To aprendendo ainda. Acho que o código fico meio grande e não consegui enxergar o erro!

Abraço;

Bom…

obrigado a todos!
hahaha

vc chamou um metodo nao static dentro do contexto static sem ter um objeto… linhas 47 e 54.