4
respostas

Duvida onde declarar a classe

public class Data { int dia; int mes; int ano;

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

eu fiz uma classe para isso mais nao sei onde devo colocar ela

codigo a baixo

package funcionarios;

/* @author Bruno /

public class Funcionarios {

private String nome; private double salario; private String RG; private Data DataEntrada;

public String getNome() { return this.nome = nome;

}

public void setNome(String nome) { this.nome = nome; }

public double getSalario() { return salario; }

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

public double aumentoSalario (double salario ,double aumento) { return this.salario += aumento; }

public void cacularGanhoAnual () { this.salario = salario * 12;

}

public String getRG() { return RG; }

public void setRG(String RG) { this.RG = RG; }

public void mostrar() { System.out.println("Nome:"+ this.nome); System.out.println("Salario"+ this.salario); System.out.println("rg"+ this.RG); System.out.println("DATA"+ this.DataEntrada);

}

public static void main(String[] args) {

Funcionarios f1 = new Funcionarios(); f1.setNome("HUGO"); f1.setSalario(3000); f1.cacularGanhoAnual(); f1.aumentoSalario(1500, 250); f1.setRG("1656566"); f1.preencherDatas(1,12,2017) f1.mostrar();

Funcionarios f2 = new Funcionarios(); f2.setNome("Bruno"); f2.setSalario(3000);

if (f1.salario == f2.salario) { System.out.println("Sao iguais"); } else {

System.out.println("Nao sao iguais"); }

}

} }

4 respostas

agorra entendi na realidade só não entend pq devo da um new data é pq ele sendo uma classe ele seria um objeto?

No java, new é o modo de criar objetos a partir de classes.

new NomeDaSuaClasse();

Olá Bruno! Tudo bem?

Apenas uma sugestão para melhorar nossa comunicação aqui no fórum de dúvidas: utilize a opção do editor de “Inserir Código”.

Vai aparecer assim um lugar para você colar o seu código. Utilizando essa função o seu código aparecerá com uma formatação que ajudará muito os moderadores/instrutores a lerem. Dessa forma, eles podem responder mais rápido a sua dúvida #fikadika

Oi, Bruno!

Vou tentar te ajudar, Ok !

1)"pq devo da um new data"

O new serve para instanciar um objeto em Java.

O método "preencherDatas" não existe na classe funcionário.

 f1.preencherDatas(1,12,2017)

Pelo código informado ele existe na classe Data. Poderia ser acessado desta forma:

f1.getDataEntrada().preencherDatas(1,12,2017);

Para o código funcionar é necessário instanciar o objeto Data e criar o método de acesso "getDataEntrada()" na Classe Funcionarios

public class Funcionarios {

    private String nome;
    private double salario;
    private String RG;
    //Objeto instanciado para evitar NullPointer
    private Data dataEntrada = new Data();

    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getSalario() {
        return salario;
    }

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

    public String getRG() {
        return RG;
    }

    public Data getDataEntrada() {
        return dataEntrada;
    }

    public void setRG(String RG) {
        this.RG = RG;
    }

    /**
     * Caso queira escrever o método preencherDatas na classe Funcionario.
     * @param dia
     * @param mes
     * @param ano
     */
    public void preencherDatas(int dia, int mes, int ano) {
        this.dataEntrada = new Data();
        this.dataEntrada.preencherDatas(dia, mes, ano);
    }

    public double aumentoSalario(double salario, double aumento) {
        return this.salario += aumento;
    }

    public void cacularGanhoAnual() {
        this.salario = salario * 12;
    }

    public void mostrar() {
        System.out.println("Nome:" + this.nome);
        System.out.println("Salario" + this.salario);
        System.out.println("rg" + this.RG);
        System.out.println("DATA" + this.dataEntrada);

    }
}

2) "é pq ele sendo uma classe ele seria um objeto? "

Isso mesmo! Em Java para representar os objetos utilizamos as classes

Palavra reservada do Java

class

As classes possuem os seus atributos (dia, mes, ano) e seus comportamentos (preencherDatas...).

O objeto quando não for instanciado ele fica nulo. Como voce não tem uma instância do objeto não poderá acessar os seus métodos.

Ufa, Tentei. Espero ter ajudado. Abraço!