Dúvidas com os Getters e Setters

Eu tenho estudado java por uma apostila e a mesma me instrui a criar as seguintes classes:

class Data {
   int dia;
   int mes;
   int ano;
}
class Funcionario {
    
    //Atributos
    private String nome;
    private String rg;
    private String departamento;
    private Data dataEntrada = new Data();
    private Data dataSaida = new Data();
    private double salario;
    private boolean ativo;

após criado essas classes eu fiz o get e set dos atributos nome, rg, departamento, salario, ativo da seguinte forma:

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

public void setNome(String n)     {
    this.nome = n;
}[/code]

agora eu gostaria de saber como eu faria o Get e Set dos atributos dataEntrada e dataSaida ja que eles vem de uma classa Data que contem 3 atributos!!!


public Data getDataEntrada(){  
       return this.dataEntrada;  
}  
   
public void setData(Data dataEntrada)     {  
       this.dataEntrada = dataEntrada;  
}

É por aí!

[quote=haamilton]


public Data getDataEntrada(){  
       return this.dataEntrada;  
}  
   
public void setData(Data dataEntrada)     {  
       this.dataEntrada = dataEntrada;  
}

É por aí![/quote]

mas a classe Data não contem 3 atributos, eu não tenho que passar cada atributo no get e set???

e depois, é so acessar os atributos da data…

int dia = getDataEntrada().getDia();

e por ai vai

[quote=Zakim]e depois, é so acessar os atributos da data…

int dia = getDataEntrada().getDia();

e por ai vai[/quote]

para acessar até entendi e para setar???

como eu passaria…

por exemplo no nome eu passaria

funcionario.setNome("joão")

e neste caso?!?!?

Cria o setDia, setMes e setAno.

isso ai! :stuck_out_tongue:

Acredito que isso é um poco falta de quebrar a cabeça sozinho! Você não sabe o que ta perdendo…hehehe…

Aprender errando é mais proveitoso do que aprender acertando!

entendo…vou tentar…
vcs tem alguma indicação de apostilas simples para o aprendizado inicial???

estou usando uma que puxei da net da Caelum (pelo q vi é uma empresa q ensina java),porém passei essa dúvida para um conhecido, e apenas por aprendizado o autor da apostila criou a classe data, e soh por isso esse conhecido ja desmereceu a apostila falando da qualidade, pois o java tem tipo de dados para tratar datas!!!

Acho que a melhor forma de começar a aprender Java é aprender Orientação a Objetos. Uma base sólida em OO vai fazer você deslanchar no aprendizado inicial de Java.
Digita Orientação a Objetos no Google e manda bala!

tipo…os conceitos eu ja conheço…
de encapsulamento, herança, polimorfismo, o q é uma classe, um atributo, um método…

tem algo a mais para se estudar?!?

[quote=icefusion]entendo…vou tentar…
vcs tem alguma indicação de apostilas simples para o aprendizado inicial???

estou usando uma que puxei da net da Caelum (pelo q vi é uma empresa q ensina java),porém passei essa dúvida para um conhecido, e apenas por aprendizado o autor da apostila criou a classe data, e soh por isso esse conhecido ja desmereceu a apostila falando da qualidade, pois o java tem tipo de dados para tratar datas!!![/quote]

Mas o objetivo não é trabalhar com datas, e sim aprender conceitos de OO.

tem uma apostila de OO da Caelum que é free!

Faça bom proveito!

http://blog.caelum.com.br/2008/03/12/apostila-de-java-e-orientacao-a-objetos-revisada-e-ampliada

:stuck_out_tongue:

concordo com vc…por isso até meio q fikei chateado pelo o cara dizer isso!!!eu expliquei que era apenas para expor os conceitos!!!

ok Zakim…eu vou buscar…e vou estudar…estou gostando muito de programar em Java é bem diferente do Delphi!!!

zakim é esta apostila mesmo que tenho em mãos!!!obrigado!!!

[quote=icefusion]tipo…os conceitos eu ja conheço…
de encapsulamento, herança, polimorfismo, o q é uma classe, um atributo, um método…

tem algo a mais para se estudar?!?[/quote]

Bom… estudar não, mas tem muito o que treinar. Você conseguiu entender este exemplo??

[quote=thegoergen][quote=icefusion]tipo…os conceitos eu ja conheço…
de encapsulamento, herança, polimorfismo, o q é uma classe, um atributo, um método…

tem algo a mais para se estudar?!?[/quote]

Bom… estudar não, mas tem muito o que treinar. Você conseguiu entender este exemplo??[/quote]

só a parte do set q naum entendi muito…mas vou fazer alguns testes em casa!!!caso não consiga eu volto ao forum hehe!!!

:shock:

Olha, a apostila dos kras é muito boa! A melhor forma de você aprender os conceitos é treinando!

A moral dos gets e sets é o encapsulamento! Tente pensar porque alguem faria isso sendo que os modificadores poderiam ser publicos e de facil acesso! Com um tempo você chega na resposta desejavel.

[quote=Zakim] :shock:

Olha, a apostila dos kras é muito boa! A melhor forma de você aprender os conceitos é treinando!

A moral dos gets e sets é o encapsulamento! Tente pensar porque alguem faria isso sendo que os modificadores poderiam ser publicos e de facil acesso! Com um tempo você chega na resposta desejavel.[/quote]

para a proteção dos dados…e quando ocorrer mudanças na regra de negócio eu só devo mudar em um único local, ou seja na classe…devemos deixar a classe cuidar de seus atributos!!não seria isso?!

hehehe… :stuck_out_tongue:

sim, esse é o começo de tudo! Primeiro aprimore bem isso!

Daqui algum tempo vai ter que aprender a lidar com as doenças do POJO, VO, TO, BO, JavaBeans e outras novos conceitos que ainda não avalizados por nenhum guruzão da tecnologia! heheh

Olha como é sossegado vincular OO com o código Java.
Os atributos são privados, logo, não é possível acessá-los diretamente a partir de outro local.
Os métodos (no caso getters/setters) são públicos, logo, é possível acessar os atributos a partir destes métodos.
Isto faz com que ao acessar a classe, para conseguir alterar os dados da mesma, é necessário que você acesse um método da classe. Isto é como uma troca de mensagens. Estes métodos podem processar estas mensagems antes de armazená-las. Eles ainda podem responder coisas!
Desta forma você consegue encapsular, envolver, a informação da qual aquela classe é responsável.
Estuda OO com um pouco de diagramas UML (principalmente diagrama de classes e de sequência). Quando você estiver mais iniciado no assunto, vai fazendo uns testes em Java.

entendo…vou seguir tudo que vcs estão falando!!!sobre o UML vcs utilizam o Rational Rose???