Complementando a quarta parte onde construímos a classe MídiaDigital, para completarmos nosso mini sistema de locadora, precisamos da prestação do serviço, precisamos unir o nosso cliente ao nosso produto, através do nosso serviço de locação. No mundo Orientado a Objetos, a ligação entre as classes, ou melhor entre os objetos se chama relacionamento. O nosso cliente pode locar um ou mais mídias digitais (DVD/BLU-RAY) e devolvê-las em um determinada data pagando um determinado valor. Para guardar estas informações necessitamos criar a classe Locação. Vamos a prática então:
Seguem as etapas passo a passo:
1) Vamos reabrir o eclipse instalado executando o arquivo c:\eclipse\eclipse.exe.
2) Aparecerá a tela Workspace Launcher, basta clicar em OK.
3) Clique com o botão direito em cima da pasta src e selecione new -> class.
4) Na tela New Java Class altere o campo "Package" para "br.com.videolocadora.model" sem as aspas.
5) No campo "Name" digite "Locacao" sem as aspas e sem acento e clique no botão Finish.
6) Aparecerá uma tela com o seguinte texto:
package br.com.videolocadora.model;
public class Locacao {
}
7) Vamos criar os atributos da classe Locacao.
8) Vamos começar com o atributo dataLocacao. No padrão adotado no JAVA as classes possuem a primeira letra de cada palavra em maiúsculo, mas os atributos tem a primeira letra de todas em minúsculo. Isto ficará claro na exemplificação. Digite o que está em negrito no texto abaixo:
package br.com.videolocadora.model;
public class Locacao {
private Date dataLocacao;
}
9) Observe que usamos o tipo Date utilizados para datas em java. Observe que Date ficou com um sublinhado em vermelho. Esta indicação mostra que o tipo Date ainda não foi importado para esta classe. Uma dica legal é utilizar as teclas Ctrl+Shift+0 (é a letra O e não o numeral 0). Esta tecla cria automaticamente os imports. O import é a indicação de todas as outras classes que são reaproveitadas neste código, no caso estou importando com Date todas as funcionalidades para este campo.
package br.com.videolocadora.model;
import java.util.Date;
import java.util.Date;
public class Locacao {
private String dataLocacao;
}
10) Para que uma locação ocorra precisamos ter a figura do cliente e a mídia que ele está locando. Desta forma iremos colocá-las como atributos da Locacao, conforme em destaque abaixo:
package br.com.videolocadora.model;
import java.util.Date;
import java.util.Date;
public class Locacao {
private Date dataLocacao;
private Cliente cliente;
private MidiaDigital midiaDigital;
}
11) Precisamos guardar também o preço e a data de prevista de entrega. O preço ou valores com casas decimais são bem representadas com o tipo Double em java, como é mostrado abaixo:
package br.com.videolocadora.model;
import java.util.Date;
import java.util.Date;
public class Locacao {
private Date dataLocacao;
private Cliente cliente;
private MidiaDigital midiaDigital;
private Double preco;
private Date dataPrevistaEntrega;
}
private Double preco;
private Date dataPrevistaEntrega;
}
package br.com.videolocadora.model;
import java.util.Date;
import java.util.Date;
public class Locacao {
private Date dataLocacao;
private Cliente cliente;
private MidiaDigital midiaDigital;
private Double preco;
private Date dataPrevistaEntrega;
private Date dataEfetivaEntrega;
private Double multaPorAtraso;
}
package br.com.videolocadora.model;
public class Locacao {
private Integer idLocacao;
private Date dataLocacao;
private Cliente cliente;
private MidiaDigital midiaDigital;
private Double preco;
private Date dataPrevistaEntrega;
private Date dataEfetivaEntrega;
private Double multaPorAtraso;
14) Salve todas as suas alterações com as teclas Ctrl + S.
16) Na tela Generate Getters and Setters clique no botão Select All e depois no botão OK.
17) O programa deve ficar como listado abaixo.
package br.com.videolocadora.model;
import java.util.Date;
public class Locacao {
private Integer idLocacao;
private Date dataLocacao;
private Cliente cliente;
private MidiaDigital midiaDigital;
private Double preco;
private Date dataPrevistaEntrega;
private Date dataEfetivaEntrega;
private Double multaPorAtraso;
public Integer getIdLocacao() {
return idLocacao;
}
public void setIdLocacao(Integer idLocacao) {
this.idLocacao = idLocacao;
}
public Date getDataLocacao() {
return dataLocacao;
}
public void setDataLocacao(Date dataLocacao) {
this.dataLocacao = dataLocacao;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public MidiaDigital getMidiaDigital() {
return midiaDigital;
}
public void setMidiaDigital(MidiaDigital midiaDigital) {
this.midiaDigital = midiaDigital;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
public Date getDataPrevistaEntrega() {
return dataPrevistaEntrega;
}
public void setDataPrevistaEntrega(Date dataPrevistaEntrega) {
this.dataPrevistaEntrega = dataPrevistaEntrega;
}
public Date getDataEfetivaEntrega() {
return dataEfetivaEntrega;
}
public void setDataEfetivaEntrega(Date dataEfetivaEntrega) {
this.dataEfetivaEntrega = dataEfetivaEntrega;
}
public Double getMultaPorAtraso() {
return multaPorAtraso;
}
public void setMultaPorAtraso(Double multaPorAtraso) {
this.multaPorAtraso = multaPorAtraso;
}
}
import java.util.Date;
public class Locacao {
private Integer idLocacao;
private Date dataLocacao;
private Cliente cliente;
private MidiaDigital midiaDigital;
private Double preco;
private Date dataPrevistaEntrega;
private Date dataEfetivaEntrega;
private Double multaPorAtraso;
public Integer getIdLocacao() {
return idLocacao;
}
public void setIdLocacao(Integer idLocacao) {
this.idLocacao = idLocacao;
}
public Date getDataLocacao() {
return dataLocacao;
}
public void setDataLocacao(Date dataLocacao) {
this.dataLocacao = dataLocacao;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public MidiaDigital getMidiaDigital() {
return midiaDigital;
}
public void setMidiaDigital(MidiaDigital midiaDigital) {
this.midiaDigital = midiaDigital;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
public Date getDataPrevistaEntrega() {
return dataPrevistaEntrega;
}
public void setDataPrevistaEntrega(Date dataPrevistaEntrega) {
this.dataPrevistaEntrega = dataPrevistaEntrega;
}
public Date getDataEfetivaEntrega() {
return dataEfetivaEntrega;
}
public void setDataEfetivaEntrega(Date dataEfetivaEntrega) {
this.dataEfetivaEntrega = dataEfetivaEntrega;
}
public Double getMultaPorAtraso() {
return multaPorAtraso;
}
public void setMultaPorAtraso(Double multaPorAtraso) {
this.multaPorAtraso = multaPorAtraso;
}
}
18) Finalizamos mais uma etapa importante do nosso tutorial. Até a próxima etapa.
Grato
Pablo
Veja as outras partes do tutorial.