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

Pequena Dúvida

Declarei uma variável em minha classe porém não consigo mostrar o resultado da função atribuído a essa variável.Como farei para exibir esse resultado?

A Variável em questão é "salarioanual"

class Empresa {
    String nome;
    String departamento;
    double salario;
    String entrada;
    String rg;
    double salarioanual;

    void recebeaumento (double reais){
        this.salario += reais;
    }

    void ganhoanual (){
        salarioanual = this.salario * 12;
    }
}

class programa {
    public static void main(String[] args){
        Empresa roberto = new Empresa ();
        roberto.nome = "Roberto De Lima Salimena";
        roberto.departamento = "T.I";
        roberto.salario = 6500;
        roberto.entrada= "09/10/2014";
        roberto.rg = "0516160";

        roberto.recebeaumento(100);
        roberto.ganhoanual();
        System.out.println(salarioanual);



    }
}
4 respostas
class Empresa {
    String nome;
    String departamento;
    double salario;
    String entrada;
    String rg;
    double salarioanual;

salarioanual é um atributo da classe Empresa, você tem que fazer assim como vocês fez para os outros atributos e chamar o atributo através da classe dona.

System.out.println(roberto.salarioanual);

Eu teria que no caso "declarar" ela na minha classe principal assim?

Empresa salarioanual = new Empresa ();
Empresa salarioanual = new Empresa ();

Se você fizer isso você ira criar uma variavel do tipo Empresa e instanciar ela, criando assim uma nova empresa. E essa empresa ira ser referenciada pela variavel salarioanual. O que nna verdade não é o que você quer fazer, salarioanual é um atributo de Empresa e não um objeto de empresa.

No seu código ela já está como um atributo da classe

nome, departamento, salario, entrada, rg e salarianual são atributos da classe Empresa

class Empresa {
    String nome;
    String departamento;
    double salario;
    String entrada;
    String rg;
    double salarioanual;
solução!

Vou tentar explicar um pouco melhor.

Como resolver o seu problema:

Simplesmente altere essa linha, pois salarioanual é um atributo da classe Empresa e para acessar você precisa de uma empresa, que no seu caso a empresa é referenciada através da variavel roberto.

System.out.println(salarioanual);

Logo o jeito certo seria

System.out.println(roberto.salarioanual);

Feito isso o seu código ira rodar sem problemas.


Agora para deixar claro algumas coisas

1- Nesse método você está pegando o ATRIBUTO salarioanual e atribuindo um valor a ele, que no caso é o atributo salario * 12. 
    void ganhoanual (){
        salarioanual = this.salario * 12;
// É a mesma coisa que 
    // this.salarioanual  = this.salario*12
    }

2- Pra que serve o .this ? - Caso você tenha uma variavel com o mesmo nome de um atributo da classe, você pode diferenciar eles através do this . O this referencia o ATRIBUTO da classe. Como não tem nenhuma variavel com o nome salario anual o metódo está pegando o ATRIBUTO salarioanual mesmo sem o this

// Uso do this
    void ganhoanual (){
// instanciando uma variavel com nome salarioanual do tipo double
    double salarioanual;
    // Ira alterar o valor da VARIAVEL LOCAL salario anual.
        salarioanual = this.salario * 12;
// ira alterar o valor do ATRIBUTO salarioanual
    this.salarioanual  = this.salario*12
    }

3 - Você acabou confundindo atributo com objeto de uma classe nos comentários

Empresa salarioanual ;  // Variavel do tipo Empresa
salarioanual = new Empresa() // Criação de um objeto da classe Empresa, referenciada pea variavel salarioanual

// Para acessar os atributos da classe empresa, através desse Objeto da classe empresa, você faria:
salarioanual.nome
salarioanual.salario
..etc