Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida Ex.1 aula 5

continua dando erro de informacao privada?

class Empresa{ String nome; String cnpj; String datadefundacao; Funcionario[] empregados;

}

class Funcionario { String nome; String departamento; private double salario; Data datadeadmissao; String rg; double recebeaumento;

public double getSalario(){ return this.salario; }

public void setSalario(double salario){ this.salario = salario; }

void recebeaumento(double aumento){ this.salario += aumento; } double ganhoanual(){ return this.salario*12; } void mostra() { System.out.println("Nome: " + this.nome); System.out.println("Departamento: " + this.departamento); System.out.println("Salario: R$" + this.getSalario()); System.out.println("Data de entrada: " + this.datadeadmissao.dia+ "/" + this.datadeadmissao.mes+ "/" + this.datadeadmissao.ano); System.out.println("RG: " + this.rg); System.out.println("Ganho anual" + this.ganhoanual());

}

}

class Data{

int dia; int mes; int ano;

void preencherdata(int dia, int mes, int ano){ this.dia = dia; this.mes = mes; this.ano = ano; } }

class Programa{

public static void main(String[] args){ Funcionario mauricio = new Funcionario(); mauricio.nome = "Mauricio Aliche"; mauricio.departamento = "RH"; mauricio.salario = 2500; mauricio.datadeadmissao = new Data(); mauricio.datadeadmissao.preencherdata(01,06,16); mauricio.rg = "30629705 sssp-se"; mauricio.recebeaumento = (500); mauricio.mostra();

Funcionario guilherme = new Funcionario(); guilherme.nome = "Guilherme Silva"; guilherme.departamento = "DAF"; guilherme.salario = 4000; guilherme.datadeadmissao = new Data(); guilherme.datadeadmissao.preencherdata(01,06,16); guilherme.rg = "956842865 ssp-sp"; guilherme.recebeaumento = (1500); guilherme.mostra();

}

}

3 respostas
solução!

Oi, Samuel. Tente sempre postar o código entre ``` ``` ( cada bloco de código entre grupos de três acentos graves, backtics, para ficar formatado. Senão essa caixa de texto tira todas as quebras de linha deixando tudo muito difícil de ler. Mesmo assim acho que eu consegui encontrar o erro. Você criou os getters e setters corretamente, mas tem que se atentar ao fato de que só poderar acessar as variáveis privadas de uma instância de Funcionario diretamente (sem utilizar os getters e setters) dentro da própria instância dessa classe. Isso significa que na classe Funcionario você pode acessar a variável departamento assim this.departamento = "x", mas fora dela vai ter que usar o setter, funcionarioX.setDepartamento("x"). É isso que o modificardor private faz.

Então, na sua classe Programa você só vai ter que criar um Funcionario assim:

Funcionario guilherme = new Funcionario();
guilherme.setNome("Guilherme");
guilherme.setDepartamento("DAF");
[...]

e para ler os dados do Funcionario utilize os getters:

System.out.println("nome: " + guilherme.getNome());
[...]

Esqueci de dizer que se continuar dando errors, poste as classes utilizando o bloco de código e o erro também para a gente poder ver direito.

muito obrigado