Dúvida

6 respostas
Glenn_Ramos

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á.

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 = "[telefone removido]";
		a.setSalario(4700);
		
		getBonificacao();
	
		Gerente b = new Gerente();
		b.nome = "Kleber";
		b.cpf = "[telefone removido]";
		b.salario = 8300;

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

6 Respostas

renandemelo

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 = "[telefone removido]";
		a.setSalario(4700);

		a.getBonificacao();

		Gerente b = new Gerente();
		b.nome = "Kleber";
		b.cpf = "[telefone removido]";
		b.salario = 8300;

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

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 = "[telefone removido]";
		a.salario = 4700;

		a.getBonificacao();

		Gerente b = new Gerente();
		b.nome = "Kleber";
		b.cpf = "[telefone removido]";
		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...)
	}
}
B

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…

Glenn_Ramos

Valeu Renan!

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

Abraço;

Glenn_Ramos

Bom…

obrigado a todos!
hahaha

LPJava

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

Criado 21 de janeiro de 2008
Ultima resposta 21 de jan. de 2008
Respostas 6
Participantes 5