Professional Documents
Culture Documents
Cálculo 01
Criando um Projeto...
File -> New -> Java Project.
Colocar o nome do projeto em Project Name... Marcar JRE -> JavaSE-1.7 e Create
separate folders for sources and class files -> Finish
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Cálculo 01
No projeto criado, expandir para a criação dos pacotes.
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Cálculo 01
E Sour e folder i di a o lo al o de o pa ote será riado e em Na e será
olo ado o o e do pa ote ( e tity ) -> Finish
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Cálculo 01
Para riar a lasse, li ar o o otão direito o pa ote e tity -> New -> Class.
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Cálculo 01
Quando a classe é criada, o Eclipse apresenta dessa forma.
package entity;
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Cálculo 01
Os tipos dos dados são, conforme esse exemplo:
Integer
String
Double
Boolean
Por padrão todos os objetos possuem valores nulo. Então como o atributo
“media” será calculado ele precisa ser inicializado com o valor de 0. (zero). É
preciso colocar o ponto pois a tipagem desse atributo é Double.
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Cálculo 01
public Aluno() {
// TODO Auto-generated constructor stub
}
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
Cálculo 01
Para criar o construtor cheio, no Menu -> Source -> Generate Constructor
using fields ou usar os botões ALT+ “S”. Marcar os campos que terão
entradas de dados. Os modificadores de acesso serão públicos.
@Override
public String toString() {
return "Aluno [codigo=" + codigo + ", nome=" + nome +
", sexo=" + sexo + ", disciplina=" + disciplina + ", nota1=" +
nota1 + ", nota2=" + nota2 + ", media=" + media + ", situacao="
+ situacao + ", ativo=" + ativo + "]";
}
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
Cálculo 01
Para criar o toString, no Menu -> Source -> Generate toString. Selecionar
os campos para a saída das informações ou clicar em “Select All”.
www.cotiinformatica.com.br 9
Apostila Java Básico Aula
Cálculo 01
ToString é um método de saída, onde os dados são retornados de uma vez.
www.cotiinformatica.com.br 10
Apostila Java Básico Aula
Cálculo 01
Métodos encapsuladores, onde “get” significa que é um método de saída e
“set” significa que é entrada. A palavra “void” significa que é um método de
ação.
www.cotiinformatica.com.br 11
Apostila Java Básico Aula
Cálculo 01
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
this.situacao = situacao;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
this.ativo = ativo;
}
}
www.cotiinformatica.com.br 12
Apostila Java Básico Aula
Cálculo 01
Damos o comando de impressão que imprimirá os parâmetros passados
dentro dos parênteses que são: nome, sexo e disciplina. Utilizamos o sinal
de “+” para concatenar, colocar lado a lado, os parâmetros.
www.cotiinformatica.com.br 13
Apostila Java Básico Aula
Cálculo 01
A classe completa ficará assim:
package entity;
public Aluno() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Aluno [codigo=" + codigo + ", nome=" + nome +
", sexo=" + sexo + ", disciplina=" + disciplina + ", nota1=" +
nota1 + ", nota2=" + nota2 + ", media=" + media + ", situacao="
+ situacao + ", ativo=" + ativo + "]";
}
www.cotiinformatica.com.br 14
Apostila Java Básico Aula
Cálculo 01
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getDisciplina() {
return disciplina;
}
public void setDisciplina(String disciplina) {
this.disciplina = disciplina;
}
public Double getNota1() {
return nota1;
}
public void setNota1(Double nota1) {
this.nota1 = nota1;
}
public Double getNota2() {
return nota2;
}
public void setNota2(Double nota2) {
this.nota2 = nota2;
}
public Double getMedia() {
return media;
}
public void setMedia(Double media) {
this.media = media;
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
this.situacao = situacao;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
www.cotiinformatica.com.br 15
Apostila Java Básico Aula
Cálculo 01
this.ativo = ativo;
}
Para testar o método main clique na classe Aluno -> Run as -> Java
Application ou CTRL + F11.
www.cotiinformatica.com.br 16
Apostila Java Básico Aula
Cálculo 01
No console do Eclipse aparece o resultado do teste da main:
www.cotiinformatica.com.br 17
Apostila Java Básico Aula
Cálculo 01
www.cotiinformatica.com.br 18
Apostila Java Básico Aula
Cálculo 01
package control;
import entity.Aluno;
www.cotiinformatica.com.br 19
Apostila Java Básico Aula
Cálculo 01
a.setSituacao("Aprovado");
}
}
package control;
import entity.Aluno;
www.cotiinformatica.com.br 20
Apostila Java Básico Aula
Cálculo 01
Para testar o método main clique na classe Aluno -> Run as -> Java
Application ou CTRL + F11 + Enter.
www.cotiinformatica.com.br 21
Apostila Java Básico Aula
Herança 02
Criando um Projeto...
File -> New -> Java Project.
Para riar a lasse, li ar o o otão direito o pa ote e tity -> New -> Class.
package entity;
public Pessoa() {
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Herança 02
@Override
public String toString() {
return "Pessoa [nome=" + nome + ", email=" + email + ",
sexo=" + sexo + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Herança 02
Essa classe foi criada com objetivo de ser herdada por uma outra classe. No
caso a classe Cliente vai herdar da classe Pessoa.
Criar a classe Cliente no pacote entity. A palavra “extends” quer dizer que
uma classe vai herdar os dados de outra classe. Existe um vínculo usado
através do verbo “ser”, onde, no nosso exemplo, Cliente é uma Pessoa.
Cliente além de possuir os dados específicos dele ainda herdará os dados
constantes na classe Pessoa.
package entity;
import java.util.Date;
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Herança 02
}
public Cliente() {
// TODO Auto-generated constructor stub
}
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Herança 02
O construtor cheio agora possui os atributos de Pessoa e de Cliente. Quando
for criado o objeto de Cliente será passado os dados de “nome”, “email”,
“sexo”, “código”, “dataCadastro”. Por uma questão de facilitar o
entendimento vamos reorganizar os atributos. Colocando em uma outra
ordem.
@Override
public String toString() {
return "Cliente [codigo=" + codigo + ", dataCadastro="
+ new SimpleDateFormat("dd/MM/yyyy").format(dataCadastro) + ",
Nome=" + getNome() + ", Email=" + getEmail() + ", Sexo=" +
getSexo() + "]";
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Herança 02
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Relacionamento 03
Classe Funcionario tem Endereco
package entity;
package entity;
public Endereco() {
}
@Override
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Relacionamento 03
public String toString() {
return "Endereco [codigo=" + codigo + ", bairro=" +
bairro + ", cidade=" + cidade + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Relacionamento 03
package entity;
public Funcionario() {
// TODO Auto-generated constructor stub
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Relacionamento 03
this.endereco = endereco;
}
@Override
public String toString() {
return "Funcionario [codigo=" + codigo + ", nome=" +
nome + ", endereco=" + endereco + "]";
}
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Relacionamento 03
this.endereco = endereco;
}
package entity;
public Funcionario() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Funcionario [codigo=" + codigo + ", nome=" +
nome + ", endereco=" + endereco + "]";
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Relacionamento 03
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Relacionamento 03
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
Relacionamento 04
Classe Correntista FormataData usando Calendar
package entity;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public Correntista() {
}
@Override
public String toString() {
return "Correntista [codigo=" + codigo + ", nome=" +
nome + ", saldo=" + saldo + ", email=" + email + ",
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Relacionamento 04
dataCadastro=" + new SimpleDateFormat("dd/MM/yyyy").format
(dataCadastro.getTime()) + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Relacionamento 04
Calendar x = Calendar.getInstance();
x.set(2015, 01 ,10);
Correntista c2 = new
Correntista(10,"lu",5000.,"lu@gmail.com", x );
System.out.println(c2);
System.out.println("Ano :" +
c2.getDataCadastro().get(Calendar.YEAR));
System.out.println("Mes :" + (1 +
c2.getDataCadastro().get(Calendar.MONTH)) );
System.out.println("Dia :" +
c2.getDataCadastro().get(Calendar.DAY_OF_MONTH));
}
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Relacionamento 04
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Cálculo Produto 05
Classe Produto e Calculo de Produto
package entity;
public Produto() {
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Cálculo Produto 05
@Override
public String toString() {
return "Produto [codigo=" + codigo + ", nome=" + nome +
", preco=" + preco + ", quantidade=" + quantidade + ", tipo=" +
tipo + ", ativo=" + ativo + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Cálculo Produto 05
public Boolean getAtivo() {
return ativo;
}
public Double getDesconto() {
return desconto;
}
public void setDesconto(Double desconto) {
this.desconto = desconto;
}
}
package control;
import entity.Produto;
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Cálculo Produto 05
A outra condição é se o produto for do tipo computador, será efetuado um
outro tipo de cálculo.
Produto p = new
Produto(10,"arroz",4.,10,"alimento",true);
CalcularProduto.calcularDescontoProduto(p);
Produto p2 = new
Produto(12,"Hiphone",2000.,1,"celular",true);
CalcularProduto.calcularDescontoProduto(p2);
System.out.println(p2.getNome());
System.out.println("Total :" +
( (p2.getPreco() - p2.getDesconto()) *
p2.getQuantidade() ) );
}
}
Produto p = new
Produto(10,"arroz",4.,10,"alimento",true);
CalcularProduto cp = new CalcularProduto();
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Cálculo Produto 05
cp.calcularDescontoProduto(p);
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
package entity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
{
salarioLiquido = 0.;
www.cotitinformatica.com.br 1
Apostila Java Básico Aula
public Funcionario() {
@Override
public String toString() {
return "Funcionario [idFuncionario=" + idFuncionario +
", nome=" + nome + ", salarioBruto=" + salarioBruto + ",
salarioLiquido=" + salarioLiquido + ", sexo=" + sexo + ",
descontos=" + descontos + ", bonus=" + bonus + "]";
}
www.cotitinformatica.com.br 2
Apostila Java Básico Aula
www.cotitinformatica.com.br 3
Apostila Java Básico Aula
@Override
public boolean equals(Object o){
Funcionario f = (Funcionario) o;
return this.idFuncionario.equals(f.getIdFuncionario());
}
www.cotitinformatica.com.br 4
Apostila Java Básico Aula
www.cotitinformatica.com.br 5
Apostila Java Básico Aula
@Override
public int compareTo(Funcionario f) {
return
this.idFuncionario.compareTo(f.getIdFuncionario());
}
Collections.sort(lista);
System.out.println("Lista Ordenada :" + lista);
System.out.println("\n");
Com o for, criamos um loop que enquanto houver funcionário ele imprimirá
a lista também já ordenada. Um outro for foi criado para demonstrar como
também pode ser trazidos as informações, utilizando a quantidade de
valores da lista.
www.cotitinformatica.com.br 6
Apostila Java Básico Aula
www.cotitinformatica.com.br 7
Apostila Java Básico Aula
package control;
import entity.Funcionario;
www.cotitinformatica.com.br 8
Apostila Java Básico Aula
package view;
import javax.swing.JOptionPane;
import entity.Funcionario;
www.cotitinformatica.com.br 9
Apostila Java Básico Aula
www.cotitinformatica.com.br 10
Apostila Java Básico Aula
try{
Funcionario f = new Funcionario();
InputFuncionario ifu = new InputFuncionario();
f.setIdFuncionario(ifu.lerCodigo());
f.setNome(ifu.lerNome());
f.setSexo(ifu.lerSexo());
f.setSalarioBruto(ifu.lerSalario());
f.setDescontos(ifu.lerDesconto());
f.setBonus(ifu.lerBonus());
System.out.println(f);
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
}
www.cotitinformatica.com.br 11
Apostila Java Básico Aula
www.cotitinformatica.com.br 12
Apostila Java Básico Aula
www.cotitinformatica.com.br 13
Apostila Java Básico Aula
www.cotitinformatica.com.br 14
Apostila Java Básico Aula
www.cotitinformatica.com.br 15
Apostila Java Básico Aula
package view;
import java.text.NumberFormat;
import java.util.Locale;
import entity.Funcionario;
NumberFormat nf;
public FormatOuput() {
nf = NumberFormat.getCurrencyInstance(new Locale("pt","BR"));
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
}
Vamos criar métodos para formatar cada uma das saídas dos valores.
www.cotitinformatica.com.br 16
Apostila Java Básico Aula
f.setIdFuncionario(ifu.lerCodigo());
f.setNome(ifu.lerNome());
f.setSexo(ifu.lerSexo());
f.setSalarioBruto(ifu.lerSalario());
f.setDescontos(ifu.lerDesconto());
f.setBonus(ifu.lerBonus());
Imprime as saídas com nome e o salário bruto já formatado.
www.cotitinformatica.com.br 17
Apostila Java Básico Aula
www.cotitinformatica.com.br 18
Apostila Java Básico Aula
www.cotitinformatica.com.br 19
Apostila Java Básico Aula
www.cotitinformatica.com.br 20
Apostila Java Básico Aula
Criar uma classe chamada OutputText para exibir a saída de texto. Criar um
método printFuncionario e passar os parâmetros da classe Funcionario e da
classe FormatOutput. Cria a variável linha do tipo String passando os dados.
Chamar a classe de JOptionPane, habilitar a janela de diálogo e o método
estático showMessageDialog para apresentar a impressão dos dados
digitados.
package view;
import javax.swing.JOptionPane;
import control.CalculoFuncionario;
import entity.Funcionario;
www.cotitinformatica.com.br 21
Apostila Java Básico Aula
JOptionPane.showMessageDialog(null, linha);
}
www.cotitinformatica.com.br 22
Apostila Java Básico Aula
www.cotitinformatica.com.br 23
Apostila Java Básico Aula
www.cotitinformatica.com.br 24
Apostila Java Básico Aula
www.cotitinformatica.com.br 25
Apostila Java Básico Aula
www.cotitinformatica.com.br 26
Apostila Java Básico Aula
Herança 07
Classe Funcionário, Estagiário e Programador
package entity;
public Funcionario() {
@Override
public String toString() {
return "Funcionario [codigo=" + codigo + ", nome=" +
nome + ", sexo=" + sexo + ", salario=" + salario + "]";
}
1
Apostila Java Básico Aula
Herança 07
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
this.salario = salario;
}
2
Apostila Java Básico Aula
Herança 07
3
Apostila Java Básico Aula
Herança 07
package entity;
@Override
public Double getBonus() {
return 200.;
}
Criar uma outra classe chamada Programador. Fazer o mesmo com essa
classe, herdar da classe Funcionario e implementar o método, colocando um
corpo, o retorno no “getBonus” de 1500. Isto é, o Programador terá um
bônus de 1500.
package entity;
@Override
public Double getBonus() {
return 1500.;
}
4
Apostila Java Básico Aula
Herança 07
Criar uma classe chamada MainAbstrata para testar. Criar um objeto para
Funcionario e sobrescrever o método getBonus passando novo valor para
ele. Onde Funcionário terá um bônus de 100. Passar através so set: o nome
e o salário. Na impressão pedir para imprimir o nome desse funcionário e o
resultado da soma do salário com o bônus.
package main;
import entity.Estagiario;
import entity.Funcionario;
f.setNome("joao");
f.setSalario(10000.);
System.out.println("Nome: " + f.getNome() + ", " +
"Salário Final: R$ " + (f.getSalario() + f.getBonus()));
5
Apostila Java Básico Aula
Herança 07
Funcionario f1= new Estagiario();
f1.setCodigo(10);
f1.setNome("carlos");
f1.setSalario(2000.);
No console...
6
Apostila Java Básico Aula
Grava Arquivo 08
Classe Cliente, gravação de Arquivo
package entity;
public Cliente() {
}
@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome=" +
nome + ", email=" + email + "]";
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Grava Arquivo 08
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public boolean equals(Object o){
Cliente c = (Cliente) o;
return this.idCliente.equals(c.getIdCliente());
}
@Override
public int hashCode(){
return String.valueOf(idCliente).length();
}
}
package manager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import entity.Cliente;
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Grava Arquivo 08
public ManagerBeanCliente() {
lista = new ArrayList<Cliente>();
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Grava Arquivo 08
return c1.getIdCliente().compareTo(c2.getIdCliente());
}
};
Collections.sort(lista, comp);
}
mb.adicionar(c1);
mb.adicionar(c2);
mb.adicionar(c3);
mb.adicionar(c4);
mb.ordenaPeloCodigo();
System.out.println(mb.getLista());
Agora através da lista, vamos inserir valores nessa lista. Chamar a classe
Lista, passar o tipo Integer como parâmetro, criar objeto e dar espaço de
memória com o ArrayList. Inserir os valores no objeto através do método
“add” e passar os valores como parâmetro.
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Grava Arquivo 08
Collections.sort(lst, comp);
System.out.println("Indice :" + lst.indexOf(11));
System.out.println(lst);
System.out.println("Valor: " + lst.get(lst.indexOf(21)) );
}
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Grava Arquivo 08
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Grava Arquivo 08
package io;
import entity.Cliente;
package io;
import java.io.File;
import java.io.FileWriter;
import entity.Cliente;
O método open fica responsável por abrir e criar o arquivo. Chamar a classe
File e criar o objeto, depois indicar o caminho do diretório onde o arquivo
ficará. Se exisitir o diretório, exibirá uma mensagem. Se não existir, criará o
diretório e exibirá a mensagem. Então o arquivo será criado.
FileWriter fw;
@Override
public void open() throws Exception {
File f = new File("c:/javabasico");
if (f.exists()){
System.out.println("Diretorio Existente ...");
}else{
f.mkdir();
System.out.println("Diretorio Criado ...");
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
Grava Arquivo 08
}
fw = new FileWriter("c:/javabasico/Cliente.txt",true);
}
@Override
public void writeArquivo(Cliente c) throws Exception {
fw.write(c.toString() + "\n");
}
@Override
public void close() throws Exception {
fw.flush();
fw.close();
}
No main, usar o bloco try e catch e criar um cliente com seus dados. É
preciso usar o bloco de try e catch pois foi usado o throws Exception nos
métodos. Chamar a classe Arquivo com o objeto e o espaço para trabalhar.
Chamar os métodos na ordem: open, writeArquivo, passando o objeto, e
close. Imprimir uma mensagem de sucesso. Caso dê errado, cai no catch e
exibe a mensagem de erro.
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
Grava Arquivo 08
}
}
Como não havia o diretório, foi criado e exibido a mensagem. Depois foi
criado o arquivo com os dados.
www.cotiinformatica.com.br 9
Apostila Java Básico Aula
Grava Arquivo 08
Foi criado um arquivo em formato txt contendo os dados.
www.cotiinformatica.com.br 10
Apostila Java Básico Aula
JUnit, Validação 09
Classe Aluno e Disciplina, Validação JUnit, gravação
no MySql
package entity;
import java.util.List;
public Aluno() {
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
JUnit, Validação 09
this.email = email;
this.listaDisciplina = listaDisciplina;
}
@Override
public String toString() {
return "Aluno [idAluno=" + idAluno + ", nome=" + nome +
", email=" + email + ", listaDisciplina=" + listaDisciplina + ",
cr=" + cr + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
JUnit, Validação 09
this.ativo = ativo;
}
}
package entity;
public Disciplina() {
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
JUnit, Validação 09
this.disciplina = disciplina;
this.nota1 = nota1;
this.nota2 = nota2;
}
@Override
public String toString() {
return "Disciplina [codigo=" + codigo + ", disciplina="
+ disciplina + ", nota1=" + nota1 + ", nota2=" + nota2 + ",
media=" + media + ", situacao=" + situacao + "]";
}
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
JUnit, Validação 09
this.situacao = situacao;
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
}
}
package control;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import entity.Aluno;
return true;
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
JUnit, Validação 09
No método Booleano validaNome passamos o parâmetro do Aluno a, onde
iremos verificar se o nome é válido. Se o nome for nulo, gera um erro de
exceção e uma mensagem, se o nome tiver tamanho igual a 0 (zero) , ou
seja vazio, também gera um erro e imprime mensagem. Se passar por essas
validações passamos as regras.
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
JUnit, Validação 09
}
return true;
}
Para o método validaCr, se o cr for menor que 0 (zero) ou maior que 10,
gera um erro e imprime a mensagem, se não retorna verdadeiro.
Para o método validaAtivo, se o aluno for diferente de ativo gera o erro com
mensagem, se não, ele é ativo, verdadeiro.
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
JUnit, Validação 09
va.validaCodigo(a);
va.validaEmail(a);
va.validaNome(a);
va.validaAtivo(a);
va.validaCr(a);
Criar uma classe Main para relacionar a classe Aluno com a classe Disciplina.
O Aluno terá uma lista de disciplinas. Criar o método main para executar o
teste.
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
JUnit, Validação 09
package entity;
import java.util.ArrayList;
Resultado no console...
www.cotiinformatica.com.br 9
Apostila Java Básico Aula
JUnit, Validação 09
Criar um pacote chamado test e criar uma classe chamada TestAluno. Para
habilitar o teste utilizando o JUnit, clicar com o botão direito no projeto,
clicar na aba Libraries e depois Add Library.
www.cotiinformatica.com.br 10
Apostila Java Básico Aula
JUnit, Validação 09
Próximo passo: Clicar em Junit e depois Next.
Finish.
www.cotiinformatica.com.br 11
Apostila Java Básico Aula
JUnit, Validação 09
package test;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import control.ValidaAluno;
import entity.Aluno;
Criar o atributo da classe aluno e passar o objeto aluno. No método init será
instanciando o objeto de aluno e seu espaço de memória. A anotação
@Before indica que esse método será rodado primeiro que os outros
métodos.
@Before
public void init(){
aluno = new Aluno();
}
www.cotiinformatica.com.br 12
Apostila Java Básico Aula
JUnit, Validação 09
Criaremos um método de teste para impor as regras de nome. Pela anotação
@Test indicamos que esse método é um teste que será executado depois do
método com a anotação @Before.
@Test
public void testQuantidadeLimiteNome(){
aluno.setNome("aa");
Assert.assertTrue("Nome fora da faixa de 2 a 35",
new ValidaAluno().validaNome(aluno));
}
@Test
public void testConteudoNome(){
aluno.setNome("");
Assert.assertTrue("Nome não pode ter caracter especial",
new ValidaAluno().validaNome(aluno));
}
}
Para testar a classe, clicar com o botão direito na classe, ir para Run as,
depois JUnit Test.
www.cotiinformatica.com.br 13
Apostila Java Básico Aula
JUnit, Validação 09
Nesse teste, o exemplo usado não passou, deu resultado vermelho, isto é,
foi pego no teste de verificação. No método testConteidoNome estava vazio
o campo nome.
www.cotiinformatica.com.br 14
Apostila Java Básico Aula
JUnit, Validação 09
Se modificarmos a classe teremos um novo resultado.
package test;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import control.ValidaAluno;
import entity.Aluno;
@Before
public void init(){
aluno=new Aluno();
}
@Test
public void testQuantidadeLimiteNome(){
aluno.setNome("luciana");
Assert.assertTrue("Nome fora da faixa de 2 a 35",
new ValidaAluno().validaNome(aluno));
}
@Test
public void testConteudoNome(){
aluno.setNome("Luciana");
Assert.assertTrue("Nome não pode ter caracter especial",
new ValidaAluno().validaNome(aluno));
}
}
www.cotiinformatica.com.br 15
Apostila Java Básico Aula
JUnit, Validação 09
Os nomes passados estão dentro das regras, então o resultado do teste
ficou verde.
www.cotiinformatica.com.br 16
Apostila Java Básico Aula
JUnit, Validação 09
www.cotiinformatica.com.br 17
Apostila Java Básico Aula
JUnit, Validação 09
Em File name, colocar o nome do script e clicar em Next.
Comandos: Explicação:
drop database if exists aula1; Apagar o banco se já existir com o
nome de aula1.
create database aula1; Criar um banco com o nome de
aula1.
show databases; Mostrar os bancos existentes na sua
máquina.
use aula1; Usar o banco aula1.
show tables; Mostrar as tabelas desse banco.
www.cotiinformatica.com.br 18
Apostila Java Básico Aula
JUnit, Validação 09
Copiar esses comandos para a janela do MySql.
package persistence;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
Connection con;
PreparedStatement stmt;
ResultSet rs;
www.cotiinformatica.com.br 19
Apostila Java Básico Aula
JUnit, Validação 09
CallableStatement call;
package manager;
import java.util.ArrayList;
import entity.Aluno;
import entity.Disciplina;
www.cotiinformatica.com.br 20
Apostila Java Básico Aula
JUnit, Validação 09
private Aluno aluno;
public ManagerBean(Aluno a) {
this.aluno = a;
this.aluno.setListaDisciplina(new
ArrayList<Disciplina>());
}
www.cotiinformatica.com.br 21
Apostila Java Básico Aula
JUnit, Validação 09
}
No console...
www.cotiinformatica.com.br 22
Apostila Java Básico Aula
ManyToMany 10
JAVA BÁSICO – Relacionamento ManyToMany
package entity;
import java.util.ArrayList;
import java.util.List;
public Medico() {
}
www.cotiinformatica.com.br
Apostila Java Básico Aula
ManyToMany 10
public Medico(List<Paciente> pacientes) {
this.pacientes = pacientes;
}
@Override
public String toString() {
return "Medico [idMedico=" + idMedico + ", nomeMedico="
+ nomeMedico + ", especializacao=" + especializacao + "]";
}
www.cotiinformatica.com.br
Apostila Java Básico Aula
ManyToMany 10
if (pacientes==null){
pacientes = new ArrayList<Paciente>();
}
pacientes.add(p);
}
@Override
public int compareTo(Medico m) {
return this.idMedico.compareTo(m.getIdMedico()) ;
}
}
www.cotiinformatica.com.br
Apostila Java Básico Aula
ManyToMany 10
Médicos, toString de todos os atributos, os getters e setters e métodos
equals e compareTo.
package entity;
import java.util.ArrayList;
import java.util.List;
public Paciente() {
@Override
public String toString() {
return "Paciente [idPaciente=" + idPaciente + ",
nomePaciente=" + nomePaciente + ", medicos=" + medicos + "]";
}
www.cotiinformatica.com.br
Apostila Java Básico Aula
ManyToMany 10
return idPaciente;
}
public void setIdPaciente(Integer idPaciente) {
this.idPaciente = idPaciente;
}
public String getNomePaciente() {
return nomePaciente;
}
public void setNomePaciente(String nomePaciente) {
this.nomePaciente = nomePaciente;
}
public List<Medico> getMedicos() {
return medicos;
}
public void setMedicos(List<Medico> medicos) {
this.medicos = medicos;
}
@Override
public int compareTo(Paciente p) {
return this.idPaciente.compareTo(p.getIdPaciente());
}
@Override
www.cotiinformatica.com.br
Apostila Java Básico Aula
ManyToMany 10
public boolean equals(Object obj) {
Paciente p = (Paciente) obj;
return this.idPaciente.equals(p.getIdPaciente());
}
}
Criar a classe para teste Main e o método main. Criar alguns pacientes com
seus dados, depois criar médicos e em seguida relacionar.
package entity;
import java.util.ArrayList;
import java.util.List;
m1.adicionar(p1);
m1.adicionar(p2);
m1.adicionar(p3);
m2.adicionar(p1);
System.out.println(m1);
System.out.println(m2);
}
}
www.cotiinformatica.com.br
Apostila Java Básico Aula
ManyToMany 10
No console...
www.cotiinformatica.com.br
Apostila Java Básico Aula
JDBC 11
Criar um projeto -> Aula11.
Criar no pacote entity a classe Funcionario com os atributos(idFuncionario,
nome, sexo, ativo, salario). Criar construtor vazio, o construtor cheio, o
toString com todos os atributos e os getters e setters.
package entity;
public Funcionario() {
@Override
public String toString() {
return "Funcionario [idFuncionario=" + idFuncionario +
", nome=" + nome + ", sexo=" + sexo + ", ativo=" + ativo + ",
salario=" + salario + "]";
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
JDBC 11
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
this.ativo = ativo;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
this.salario = salario;
}
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
JDBC 11
Clicar em Java Build Path e Add External JARs.
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
JDBC 11
Depois de adicionar a lib, clicar em Apply e depois OK.
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
JDBC 11
Criando o banco de dados:
Para criar o script do banco de dados, criar um pacote chamado persistence.
Depois clicar no pacote, new e Other. Depois SQL Development, SQL File e
Next. Em File name, colocar o nome do script e clicar em Next. Depois de
criado o arquivo com o SQL do banco. Digitar os comando para criação do
banco.
Comandos: Explicação:
drop database if exists Apagar o banco se já existir com o nome
aula11; de aula11.
create database aula11; Criar um banco com o nome de aula11.
use aula11; Usar o banco aula11.
Comandos: Explicação:
create table Criar a tabela com nome de funcionário.
primary key Significa que o campo será a chave
primária.
varchar Siginifica que o campo é uma palavra com
35 caracteres.
not null O campo não poderá ser nulo, vazio.
enum Significa que o campo só tem duas opções
“m” ou “f”.
double Significa que o campo é do tipo Double,
valor.
int Significa que o campo é do tipo inteiro.
Comandos: Explicação:
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
JDBC 11
desc Comando para dar a descrição da tabela.
insert into “nome da Insere na tabela “funcionário” os valores
tabela” values (...)
select * from “nome da Comando que seleciona todos os campos
tabela” da tabela funcionário.
select Seleciona
* Todos
from “tabela” Se refere a tabela desejada.
desc funcionario;
No banco...
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
JDBC 11
Criar um pacote chamado persistence e nele criar uma classe chamada Dao.
Essa classe é destinada para conexão ao banco de dados. DAO significa Data
Access Object.
package persistence;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
JDBC 11
getConnection("jdbc:mysql://localhost:3306/aula11","root","coti"
);
}
No console...
package persistence;
import java.util.ArrayList;
import java.util.List;
import entity.Funcionario;
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
JDBC 11
public class FuncionarioDao extends Dao {
stmt.setInt(1,f.getIdFuncionario());
stmt.setString(2,f.getNome());
stmt.setString(3,f.getSexo());
stmt.setDouble(4,f.getSalario());
stmt.setInt(5, (f.getAtivo())?1:0);
stmt.execute();
stmt.close();
close();
}
www.cotiinformatica.com.br 9
Apostila Java Básico Aula
JDBC 11
f.setIdFuncionario( rs.getInt(1));
f.setNome( rs.getString(2));
f.setSexo( rs.getString("sexo"));
f.setSalario(rs.getDouble(4));
f.setAtivo(( rs.getInt(5) ==1 )?true:false);
lista.add(f);
}
close();
return lista;
www.cotiinformatica.com.br 10
Apostila Java Básico Aula
JDBC 11
}
No console..
www.cotiinformatica.com.br 11
Apostila Java Básico Aula
JDBC 11
No banco...
www.cotiinformatica.com.br 12
Apostila Java Básico Aula
List - HashCode 12
Criar um projeto -> Aula12.
Criar no pacote entity a classe Usuario com os atributos(idUsuario,
nomeUsuario, login, senha). Implementar a interface Comparable. Criar
construtor vazio, o construtor cheio, o toString sem a impressão da senha e
os getters e setters.
package entity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
public Usuario() {
Na criação do toString, não incluir o atributo senha pois senão será impresso
a senha.
@Override
public String toString() {
return "Usuario [idUsuario=" + idUsuario + ",
nomeUsuario=" + nomeUsuario + ", login=" + login +"]";
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
List - HashCode 12
public Integer getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(Integer idUsuario) {
this.idUsuario = idUsuario;
}
public String getNomeUsuario() {
return nomeUsuario;
}
public void setNomeUsuario(String nomeUsuario) {
this.nomeUsuario = nomeUsuario;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
List - HashCode 12
}
@Override
public int hashCode(){
String quantidade = String.valueOf(idUsuario);
return quantidade.length();
}
@Override
public int compareTo(Usuario u) {
return this.idUsuario.compareTo(u.getIdUsuario());
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
List - HashCode 12
passamos o objeto da lista. Em seguida pedimos para imprimir esse objeto
com o resultado da lista já ordenado pelo código.
No console...
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
List - HashCode 12
login=lu@gmail.com], Usuario [idUsuario=100, nomeUsuario=jose,
login=jose@gmail.com]]
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Agregação - Cálculo 13
Criar um projeto -> Aula13.
Criar no pacote entity as classes Jogador, Equipe, Pontuacao e
GerenteProjeto. Na classe Jogador criar os atributos(idJogador, nome e
pontos). Fazer o relacionamento do jogador com a classe Pontuacao e
atributo pontuacao. Criar construtor vazio, o construtor cheio, o toString
sem a impressão da senha e os getters e setters.
package entity;
public Jogador() {
@Override
public String toString() {
return "Jogador [idJogador=" + idJogador + ", nome=" +
nome + ", pontos=" + pontos + "]";
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Agregação - Cálculo 13
public Integer getPontos() {
return pontos;
}
public void setPontos(Integer pontos) {
this.pontos = pontos;
}
public Pontuacao getPontuacao() {
return pontuacao;
}
public void setPontuacao(Pontuacao pontuacao) {
this.pontuacao = pontuacao;
}
}
package entity;
public Pontuacao() {
@Override
public String toString() {
return "Pontuacao [idCartao=" + idCartao + ", cor=" +
cor + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Agregação - Cálculo 13
return idCartao;
}
public void setIdCartao(Integer idCartao) {
this.idCartao = idCartao;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
package entity;
import java.util.ArrayList;
import java.util.List;
public GerenteProjeto() {
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Agregação - Cálculo 13
public GerenteProjeto(Integer codigo, String nome,
List<Equipe> equipes) {
this.codigo = codigo;
this.nome = nome;
this.equipes = equipes;
}
@Override
public String toString() {
return "GerenteProjeto [codigo=" + codigo + ", nome=" +
nome + ", equipes=" + equipes + "]";
}
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Agregação - Cálculo 13
package entity;
public Equipe() {
@Override
public String toString() {
return "Equipe [idEquipe=" + idEquipe + ",
nomeFuncionario=" + nomeFuncionario + ", gerente=" + gerente +
"]";
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Agregação - Cálculo 13
}
public String getNomeFuncionario() {
return nomeFuncionario;
}
public void setNomeFuncionario(String nomeFuncionario) {
this.nomeFuncionario = nomeFuncionario;
}
public void setGerente(GerenteProjeto gerente) {
this.gerente = gerente;
}
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Agregação - Cálculo 13
System.out.println(e3.getNomeFuncionario() + ", GP=" +
e3.getGerente().getNome());
}
}
No console...
lu, GP=stuart
anthony, GP=null
garrito, GP=stuart
package control;
import entity.Jogador;
import entity.Pontuacao;
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
Agregação - Cálculo 13
No teste main, criar os jogadores com seus dados, criar as pontuações
também com seus dados.
System.out.println(j1.getNome() + "," +
j1.getPontuacao().getIdCartao());
System.out.println("Pontos :" + j1.getPontos());
System.out.println(j2.getNome() + "," +
j2.getPontuacao().getIdCartao());
System.out.println("Pontos :" + j2.getPontos());
}
}
No console...
leandro,1001
Pontos :130
noe,1002
Pontos :50
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
Mapa 14
Criar um projeto -> Aula14.
Criar no pacote entity as classes Aluno e Endereco. Na classe Aluno
implementar a interface Comparable, criar os atributos (idAluno, nome,
disciplina, nota1,nota2 e media, sendo transient), relacionar com a classe
Endereco. Depois criar os construtores vazio e cheio sem os atributos de
media e relacionamento de Endereço. Colocar o toString e getters e setters.
Inicializar o atributo média com 0 (zero), pois será calculada pelo sistema.
package entity;
import java.util.ArrayList;
import java.util.List;
public Aluno() {
@Override
public String toString() {
return "Aluno [idAluno=" + idAluno + ", nome=" + nome +
", disciplina=" + disciplina + ", nota1=" + nota1 + ", nota2=" +
nota2 + ", media=" + media + ", endereco=" + endereco + "]";
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Mapa 14
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Mapa 14
@Override
public boolean equals(Object obj) {
Aluno a = (Aluno) obj;
return this.idAluno.equals(a.getIdAluno());
}
@Override
public int compareTo(Aluno a) {
return this.idAluno.compareTo(a.getIdAluno());
}
@Override
public int hashCode() {
return String.valueOf(idAluno).length();
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Mapa 14
System.out.println("Resposta: " +
lista.get(0).getEndereco());
}
}
No console...
package entity;
public Endereco() {
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Mapa 14
@Override
public String toString() {
return "Endereco [idEndereco=" + idEndereco + ",
bairro=" + bairro + ", cidade=" + cidade + "]";
}
Criar um pacote chamado mapa e nele criar uma classe chamada Mapa.
Criar um método de teste, main.
package mapa;
import java.util.Map;
import java.util.TreeMap;
import entity.Aluno;
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Mapa 14
import entity.Endereco;
System.out.println("Chaves: ");
for (Integer chave : mapa.keySet()){
System.out.println(chave);
}
System.out.println("Nomes: ");
for (String texto : mapa.values()){
System.out.println(texto);
}
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Mapa 14
Nesse novo teste criamos uma variável de String onde será inciada com o
espaço entre as aspas e uma outra variável Integer com valor “10”. No loop
de for tipamos Integer para a variável “chave” e chamamos o objeto “mapa”
com o método keySet e damos a condição se a variável “chaveproc” for igual
a “chave”, a “chaveproc” recebera o valor de “chave”. A variavel
“procuravalor” receberá do “mapa” na posição da “chave” o valor de String
correspondente. Onde imprimiremos o valor da chave e seu conteúdo,
Novo teste com a classe Aluno e objeto “busca” dar espaço de memória.
Setar o código do aluno e criar uma condição de que se se no mapa2
contiver o código passado em busca cai no loop do for, onde passo para o
objeto de Aluno a chave keySey de mapa2.
Na condição if, se o resultado da busca for igual ao objeto, passo que busca
recebra a, o objeto, e busca setará o endereço. Senão, se a busca for nula,
vazia, imprime a mensagem.
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
Mapa 14
Se passar pela condição, imprime o nome do aluno e depois imprime o
endereço.
No console...
Chaves:
8
10
12
Nomes:
andre
luis
lidia
Booleana :true
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
Mapa 14
endereco=null]=Endereco [idEndereco=1, bairro=tijuca,
cidade=rj]}
www.cotiinformatica.com.br 9
Apostila Java Básico Aula
Enum 15
A classe enum funciona como uma enumeração de constantes. Essas constantes
podem ter valores associados e funcionam com um vetor, ou seja, cada constante é
uma posição do vetor. Uma característica da classe enum é ter o construtor privado.
Na declaração da classe enum não é criado espaço de memória, logo ela funciona com
uma classe static. A classe static já tem espaço de memória para funcionar.
package entity;
private Bimestre() {
}
@Override
public String toString() {
return super.toString();
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Enum 15
}
public Integer getPos() {
return pos;
}
public void setPos(Integer pos) {
this.pos = pos;
}
No console...
Nome : PRIMEIRO
Posicao :0
Valor : 1
Nome : SEGUNDO
Posicao :1
Valor : 2
Nome : TERCEIRO
Posicao :2
Valor : 3
Nome : QUARTO
Posicao :3
Valor : 4
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Polimorfismo Interface 16
Polimorfismo:
Polimorfismo significa “muitas formas”. Em Orientação a Objetos, o conceito do
polimorfismo é aplicado quando utilizamos o vertbo SER entre pelo menos 2 ou mais
subclasses, podendo ser feito utilizando-se interfaces ou Classes abstratas.
Tipos de polimorfismo:
Existem quatro tipos de polimorfismo que a linguagem pode ter (atente para o fato de
que nem toda linguagem orientada a objeto tem implementado todos os tipos de
polimorfismo):
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Polimorfismo Interface 16
Universal
Inclusão - um ponteiro para classe mãe pode apontar para uma instância de
uma classe filha (exemplo em Java: List lista = new LinkedList(); (tipo de
polimorfismo mais básico que existe)
Paramétrico - se restringe ao uso de templates (C++, por exemplo) e generics
(C#/Java)
Ad-Hoc
Sobrecarga - duas funções/métodos com o mesmo nome mas assinaturas
diferentes
Coerção - conversão implícita de tipos sobre os parâmetros de uma função
package entity;
package entity;
public Carro() {
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Polimorfismo Interface 16
@Override
public String toString() {
return idCarro + ", " + nome + ", " + placa;
}
@Override
public String getPlaca() {
return placa;
}
@Override
public void setPlaca(String placa) {
this.placa = placa;
}
}
package entity;
public Moto() {
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Polimorfismo Interface 16
this.idMoto = idMoto;
this.modelo = modelo;
this.placa = placa;
}
@Override
public String toString() {
return idMoto + ", " + modelo + ", " + placa;
}
@Override
public String getPlaca() {
return placa;
}
@Override
public void setPlaca(String placa) {
this.placa = placa;
}
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Polimorfismo Interface 16
package main;
import entity.Carro;
import entity.Moto;
import entity.Veiculo;
System.out.println(v1);
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Polimorfismo Interface 16
System.out.println(v2);
}
}
No console...
1, Ferrari, ABC-1234
2, Suzuki, ABC-4321
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
package entity;
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
@Override
public String toString() {
return idAutomovel + ", " + nome;
}
// Métodos abstratos
public abstract void setFabricante(String fabricante);
public abstract String getFabricante();
package entity;
public CarroEsportivo() {
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
@Override
public String toString() {
return super.toString() + ", " + ano + ", " + fabricante;
}
@Override
public String getFabricante() {
return fabricante;
}
@Override
public void setFabricante(String fabricante) {
this.fabricante = fabricante;
}
}
package entity;
public CarroExecutivo() {
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
@Override
public String toString() {
return super.toString() + ", " + modelo + ", " + fabricante;
}
@Override
public String getFabricante() {
return fabricante;
}
@Override
public void setFabricante(String fabricante) {
this.fabricante = fabricante;
}
}
package main;
import entity.Automovel;
import entity.CarroEsportivo;
import entity.CarroExecutivo;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
No console...
1, Ferrari, 2012, Ferrari Italia
2, C4, Sedan, Citroen
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Classes em OO 18
Orientação a Objetos em Java - Criando Classes:
A Orientação a Objetos é uma maneira alternativa de pensar os problemas de
sistemas de informação utilizando modelos organizados a partir de conceitos do
mundo real. O artefato base é o “objeto” capaz de combinar estrutura e
comportamento em uma única “entidade”. Tudo o que podemos ver no mundo real é
considerado um objeto com atributos e comportamentos definidos. Na qualidade de
método de modelagem, é tida como a melhor estratégia para se eliminar a
dificuldade recorrente no processo de modelar o mundo real do domínio do problema
em um conjunto de componentes de software que seja o mais fiel na sua
representação deste domínio.
A Linguagem Java:
Java é a base de praticamente todos os tipos de aplicativos em rede, e é o padrão
global para desenvolvimento e fornecimento de aplicativos para celular, jogos,
conteúdo on-line e software corporativo. Com mais de 9 milhões de desenvolvedores
em todo o mundo, o Java permite desenvolver e implantar aplicativos e serviços
incríveis de maneira eficiente. Com ferramentas abrangentes, um ecossistema sólido
e um desempenho eficiente, o Java oferece a portabilidade de aplicativos mesmo
entre os ambientes computacionais mais diferentes.
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Classes em OO 18
tecnologia para telefone celular encontrada em mais de três bilhões de dispositivos,
por enquanto.
package entity;
public Pessoa() {
}
Note que a Classe posui atributos privados e métodos para entrada e saída dos dados
denominados set (entrada) e get (saída). A Classe também possui 2 métodos
Construtores, o primeiro sendo o Construtor default (padrão) da Classe e o segundo
sendo o Construtor que permite a entrada de dados para a Classe. Quando escrevemos
dois métodos com o mesmo nome, porém com entrada de dados diferentes (como no
caso dos construtores), denominados este procedimento de Sobrecarga de Métodos
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Classes em OO 18
Em Java, todas as classes por definição são herança de Object. A Classe Object do
Java possui 3 métodos que podemos implementar quando herdamos dela. São eles:
toString - Método utilizado para retornar uma String que representa os dados
do objeto, como uma “assinatura” do objeto.
equals - Método utlizado para comparar se dois objetos da mesma Classe são
iguais.
hashCode - Método utilizado para retornar o endereço de hashCode do objeto
quando este é criado pelo compilador.
package entity;
public Pessoa() {
}
@Override
public String toString() {
return idPessoa + ", " + nome;
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Classes em OO 18
this.nome = nome;
}
}
package entity;
public Pessoa() {
}
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Classes em OO 18
//Impressão do objeto (toString)
System.out.println("Dados de Pessoa: " + p);
}
}
No console...
Dados de Pessoa: 1, Sergio
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Interface 19
Interface:
A Interface tem como objetivo a padronização de métodos para sua aplicação e o
comando para representar a interface é o implements. Ela não pode ser instanciada e
sim implementada por outra classe, entretanto a classe que a implementa tem que
ser concreta. Uma classe pode implementar varias interfaces. A Interface extends
outra interface e uma classe concreta implements uma ou mais interfaces.
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Interface 19
Interface IConexao
package entity;
package entity;
package entity;
@Override
public void close() throws Exception {
System.out.println("Fechar Conexao Banco de Dados");
}
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Interface 19
package entity;
@Override
public void close() throws Exception {
System.out.println("Fechar Conexao Arquivo");
}
@Override
public void write() throws Exception {
System.out.println("Escrever no Arquivo");
}
@Override
public String read() throws Exception {
return "Ler do Arquivo";
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Encapsulamento 20
Encapsulamento:
É um conceito da orientação a objetivo que significa como pode ser feito a entrada e
saída de dados de uma classe. Na Linguagem existem duas formas para isso. A
primeira seria pelos métodos gets ( Saída de Dados ) e sets ( Entrada de Dados ) e a
outra seria pelo construtor cheio ( Entrada de Dados ) e o toString ( Saída de Dados ).
E os atributos da classe sendo private.
package entity;
public Aluno() {
}
@Override
public String toString() {
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Encapsulamento 20
return "Aluno [idAluno=" + idAluno + ", nomeAluno=" +
nomeAluno + ", nota1=" + nota1 + ", nota2=" + nota2 + "]";
}
package main;
import entity.Aluno;
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Encapsulamento 20
a1.setNota2(8.);
System.out.println("Nome: " + a1.getNomeAluno() +
"Nota1: " + a1.getNota1() +
"Nota2: " + a1.getNota2()
);
//------------------------------------------------
// O encapsulamento utilizando Construtor cheio e
// toString ( representado pelo objeto )
Aluno a2 = new Aluno(2,"Joao",8.,6.);
System.out.println("Dados: " + a2);
}
}
No console..
Nome: luizNota1: 7.0Nota2: 8.0
Dados: Aluno [idAluno=2, nomeAluno=Joao, nota1=8.0, nota2=6.0]
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Classe Abstrata 21
Classe Abstrata:
Ela não pode ser instanciada , isto é, criar um objeto dela. Logo temos que herda em
outras classes concretas (Subclasse). Os métodos sem corpo obrigatoriamente terá
que ser rescrito na subclasse como ocorre na Interface, e na subclasse utiliza a
palavra extends para herdar a classe abstrata.
Uma classe abstrata normalmente possui métodos abstratos. Esses métodos são
implementados nas suas classes derivadas concretas com o objetivo de definir o
comportamento específico. O método abstrato define apenas a assinatura do método
e, portanto, não contém código.
Por outro lado, as classes concretas implementam todos os seus métodos e permitem
a criação de instâncias. Uma classe concreta não possui métodos abstratos e,
geralmente, quando utilizadas neste contexto, são classes derivadas de uma classe
abstrata.
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Classe Abstrata 21
package entity;
public Funcionario() {
}
@Override
public String toString() {
return "Funcionario [nome=" + nome + ", salario=" + salario
+ "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Classe Abstrata 21
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
this.salario = salario;
}
package entity;
package main;
import entity.FuncionarioCLT;
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Classe Abstrata 21
fc.setNome("Jose");
fc.setSalario(5000.);
fc.calculoBonus(100.);
System.out.println("Salário com Bonus : " +
fc.getSalario());
fc.calculoDesconto();
System.out.println("Salário com Desconto : " +
fc.getSalario());
}
}
No console...
Nome 5000.0
Salario Bruto : 5000.0
Salário com Bonus : 5100.0
Salário com Desconto : 4845.0
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Equals, Comparable 22
Equals:
O método equals é usado em uma classe para criar um critério de igualdade de dois
ou mais objetos dessa classe. Esse critério pode ser feito por um atributo ou mais.
Esse método é herdado da classe Object. Sem reprogramar esse método o critério de
igualdade do Java é feito pela atribuição de um objeto com o outro. Fazendo isso o
critério de igualdade é feito pela posição de memória dos objetos.
package entity;
public Pessoa() {
}
@Override
public String toString() {
return "Pessoa [codigo=" + codigo + ", nome=" + nome + "]";
}
@Override
public boolean equals(Object obj) {
Pessoa p = (Pessoa) obj;
// Essa linha faz um conversão de Object para Pessoa.
return this.codigo.equals(p.getCodigo());
// Criando o critério de igualdade
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Equals, Comparable 22
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
package main;
import entity.Pessoa;
No console...
true
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Equals, Comparable 22
Comparable:
Interface Comparable é usada em uma classe para criar um critério de ordenação. Ao
implementar essa interface tem que reprogramar o método compareTo. Nesse método
é feito o critério podendo ser utilizando um atributo ou mais da classe.
package entity;
public Pessoa() {
}
@Override
public String toString() {
return "Pessoa [codigo=" + codigo + ", nome=" + nome + "]";
}
@Override
public boolean equals(Object obj) {
Pessoa p = (Pessoa) obj;
// Essa linha faz um conversão de Object para Pessoa.
return this.codigo.equals(p.getCodigo());
// Criando o critério de igualdade
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Equals, Comparable 22
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public int compareTo(Pessoa obj) {
// Utilizando a forma abaixo, a ordenação será crescente
return this.codigo.compareTo(((Pessoa)obj).getCodigo());
// Utilizando a forma abaixo, a ordenação será decrescente
// return (((Pessoa)obj).getCodigo()).compareTo(this.codigo);
}
}
package main;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import entity.Pessoa;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Equals, Comparable 22
No console...
[Pessoa [codigo=1, nome=joao], Pessoa [codigo=2, nome=joao], Pessoa
[codigo=3, nome=maria]]
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
Sobrescrita de Métodos:
A sobrescrita de métodos ocorre quando tem uma subclasse herdado uma classe ou
implementado uma interface. Esse método caracteriza-se pela assinatura do método
ser igual ao método da Superclasse ou da Interface ou pela anotação @Override
(Sobrescrita) acima do método.
package entity;
@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome=" + nome +
"]";
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
Quando uma Subclasse herda uma Superclasse.
package entity;
public Funcionario() {
}
@Override
public String toString() {
return "Funcionario [idFuncionario=" + idFuncionario + ",
nome=" + nome + ", descricao=" + descricao + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String imprimirDescricao(){
return "Funcionario Padrao";
}
}
package entity;
@Override
public String imprimirDescricao() {
return "Funcionario CLT";
}
}
package main;
import entity.Funcionario;
import entity.FuncionarioCLT;
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
Funcionario f = new Funcionario(100, "jose", "funcionario");
No console...
Funcionario: Funcionario [idFuncionario=100, nome=jose,
descricao=funcionario]
Descricao: Funcionario Padrao
package entity;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
package entity;
@Override
public void close() throws Exception {
System.out.println("Fechar o Arquivo");
}
}
package main;
import entity.Arquivo;
No console...
Abrir o Arquivo
Fechar o Arquivo
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
Sobrecarga de Métodos:
A sobrecarga de métodos ocorre quando tem dois ou mais métodos que possuem a
mesma assinatura e só mudando o tipo ou a quantidades de parâmetros declarados
nele.
package entity;
public Cliente() {
@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome=" + nome +
"]";
}
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
Quando ocorre é declarado dois ou mais métodos na mesma classe.
package entity;
package entity;
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
package main;
import entity.NumeroNatural;
No console...
Numero1
Numero2.0
Numero3
Numeros354
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
Tratamento de Erro 24
Tratamento de Erro:
O tratamento de erros na linguagem Java é feito pelo uso dos comandos try, catch,
finally. E tem outros dois comandos que são: throw e o throws. No Java existe a classe
Throwable que é a superclasse de todas as exceções , e tem dois ramos um das
Exception ( que são exceções , por exemplo , divisão por zero ) e o outro ramo dos
Error ( que são erros que não poderia ocorrer , por exemplo, estouro de memória).
Comando Try:
Esse comando tem como finalidade de tentativa de executar alguma ação, exemplo
gravação de dados em arquivo.
Comando Catch:
Esse comando tem como finalidade de gerar a mensagem de erro e evitar que o
programa pare.
Comando Finally:
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Tratamento de Erro 24
package entity;
public Numero() {
}
@Override
public String toString() {
return "Numero [num1=" + num1 + ", num2=" + num2 + "]";
}
Agora será utilizado o bloco de instrução try, catch e finally para evitar que o projeto
pare.
Executando o CRUD no main
Comando throw
O comando throw serve para gerar uma exceção no java . Ele é usado para validar
alguma ação e enviar uma mensagem para o usuário, utilizando o catch.
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Tratamento de Erro 24
package main;
import entity.Numero;
try {
// Serve para validar se o numero2 e menor ou igual a 0
// Se for envia uma mensagem para o catch.
if(n.getNum2() <= 0){
throw new Exception("Numero 2 não pode ser zero ou menor");
}
//Faz o calculo
resp = n.getNum1() / n.getNum2();
//Apresenta o Resultado
System.out.println(resp);
} catch (Exception e) {
// Apresenta o Erro by /zero no entanto , o projeto continua
funcionando
// Até o último comando.
System.out.println("Error: " + e.getMessage());
}
finally{
System.out.println("Sempre executa o finally \n ");
}
System.out.println("continua");
}
}
No console...
Error: Numero 2 não pode ser zero ou menor
Sempre executa o finally
Continua
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Padrão MVC 25
MVC:
Um diagrama simples exemplificando a relação entre Model, View e
Controller. As linhas sólidas indicam associação direta e as tracejadas indicam
associação indireta.
Model-view-controller (MVC), em português modelo-visão-controlador, é um
padrão de arquitetura de software (design pattern) que separa a
representação da informação da interação do usuário com ele.
O modelo (model) consiste nos dados da aplicação, regras de negócios, lógica
e funções. Uma visão (view) pode ser qualquer saída de representação dos
dados, como uma tabela ou um diagrama. É possível ter várias visões do
mesmo dado, como um gráfico de barras para gerenciamento e uma visão
tabular para contadores. Ocontrolador (controller) faz a mediação da
entrada, convertendo-a em comandos para o modelo ou visão. As ideias
centrais por trás do MVC são a reusabilidade de código e separação de
conceitos.
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Padrão MVC 25
Uso em aplicações web :
Apesar de desenvolvida originalmente para computação pessoal, o MVC foi
amplamente adaptado como uma arquitetura para as aplicações World Wide
Web em todas as linguagens de programação maiores. Muitos frameworks de
aplicação comerciais e não comerciais foram criados tendo como base esse
modelo. Estes frameworks variam em suas interpretações, principalmente no
modo que as responsabilidades MVC são divididas entre o cliente e servidor.
Esse padrão resolve este problema através da separação das tarefas de acesso
aos dados e lógica de negócio, lógica de apresentação e de interação com o
utilizador, introduzindo um componente entre os dois: o controlador.
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Padrão MVC 25
package entity;
public Pessoa() {
}
@Override
public String toString() {
return "Pessoa [idPessoa=" + idPessoa + ", nome=" +
nome + ", idade=" + idade + "]";
}
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Padrão MVC 25
}
package control;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import entity.Pessoa;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Padrão MVC 25
package view;
import java.util.Scanner;
package main;
import control.ValidaPessoa;
import entity.Pessoa;
import view.InputPessoa;
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Padrão MVC 25
public class Main {
public static void main(String[] args) {
Pessoa p = new Pessoa();
InputPessoa ip = new InputPessoa();
ValidaPessoa vp = new ValidaPessoa();
try{
p.setIdPessoa(ip.lerCodigo());
p.setNome(ip.lerNome());
p.setIdade(ip.lerIdade());
vp.validaCodigo(p);
vp.validaNome(p);
vp.validaIdade(p);
System.out.println("Dados" + p);
}catch(Exception ex){
System.out.println("Error" + ex.getMessage());
}
}
No console...
Digite o Codigo :
5
Digite o Nome :
luciana
Digite a Idade :
22
DadosPessoa [idPessoa=5, nome=luciana, idade=22]
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
package control;
import java.util.List;
package entity;
public Pessoa() {
// TODO Auto-generated constructor stub
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
@Override
public String toString() {
// Modifica o toString para o separador de campo ser ";"
// E assim dividir no array.
return idPessoa + ";" + nome + ";" + email;
}
package control;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import entity.Pessoa;
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
@Override
public void openWrite() throws Exception {
//Nome do diretorio escolhido
File f = new File("c:/temp");
// Cria o diretorio, caso não exista
f.mkdir();
//Nome do arquivo
File arquivo = new File(f, "pessoa.txt");
//Aponta para o nome do arquivo
fw = new FileWriter(arquivo, true);
}
@Override
public void closeWrite() throws Exception {
fw.close(); // Fechar o arquivo
}
@Override
public void write(Pessoa p) throws Exception {
//Escreve no arquivo
fw.write(p.toString() + "\n" );
//Atualiza o arquivo
fw.flush();
}
@Override
public void openRead() throws Exception {
//Aponta para o arquivo a ser lido
fr = new FileReader("c:/temp/pessoa.txt");
//Colocar os dados no buffer
br = new BufferedReader(fr);
}
@Override
public void closeRead() throws Exception {
br.close(); // fechar o buffer
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
@Override
public List read() throws Exception {
package main;
import control.Arquivo;
import entity.Pessoa;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
//Gravar os objetos p1 e p2
a.write(p1);
a.write(p2);
System.out.println("Dados Gravados");
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Padrão DAO 27
DAO - Objeto de acesso a dados:
Esse padrão tem por finalidade criar uma camada de acesso ao banco de
dados e proporcionando o isolamento da camada de persistência das demais
camadas do projeto. Essa camada e composta pela classe DAO e a classe que
terá os métodos para o CRUD (Inserir, Deletar, Excluir e Lista) para cada
entidade da camada de modelo. No exemplo abaixo a classe PessoaDao
representa essa lógica e a entidade a ser persistida no banco de dados é
Pessoa. A classe Dao é composta por dois métodos que são: Open() para abrir
o banco e o Close() para fechar o banco. E alguns atributos como Connection
(Conexão ao Banco de Dados), PreparedStatement (Acessar a Tabela),
ResultSet (Consulta a Tabela) e o CallaBleStatement (Usar Procedures e
Function).
package entity;
public Pessoa() {
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Padrão DAO 27
public Pessoa(Integer idPessoa, String nomePessoa, String
email) {
super();
this.idPessoa = idPessoa;
this.nomePessoa = nomePessoa;
this.email = email;
}
@Override
public String toString() {
return "Pessoa [idPessoa=" + idPessoa + ",
nomePessoa=" + nomePessoa + ", email=" + email + "]";
}
package persistence;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Padrão DAO 27
public class Dao {
Connection con;
// Conexao ao Banco de Dados
PreparedStatement stmt;
// Acessa a Tabela ( insert, update, delete , select)
ResultSet rs;
// Consulta a Tabela( select )
CallableStatement call;
// Procedures e Function
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Padrão DAO 27
package persistence;
import java.util.ArrayList;
import java.util.List;
import entity.Pessoa;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Padrão DAO 27
public Pessoa finallByCod(int cod) throws Exception {
open();
stmt = con.prepareStatement("select * from
pessoa where idPessoa = ? ");
rs = stmt.executeQuery();
Pessoa p = null;
if (rs.next()) {
p = new Pessoa();
p.setIdPessoa(rs.getInt("idPessoa"));
p.setNome(rs.getString("nome"));
p.setEmail(rs.getString("email"));
}
close();
return p;
}
Para efetuar um teste com a lógica do CRUD tem que criar o banco e a tabela
pessoa pelo SQL, que é a linguagem padronizada para todos os bancos de
dados, e copiar no mysql. Logo é criado um arquivo chamando script.sql.
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Padrão DAO 27
script.sql
# O símbolo # serve para comentar no script.sql
package main;
import entity.Pessoa;
import persistence.PessoaDao;
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
Padrão DAO 27
//Comando para gravar no banco;
pd.create(p1);
pd.create(p2);
//Comando para listaTodos
System.out.println(pd.findAll());
//Comando para alterar uma pessoa;
// 1º Passo
//Busca pelo Codigo
// 2 -> é a chave primaria de pessoa no banco
Pessoa pessoa = pd.finallByCod(2);
System.out.println("pessoa:" + pessoa);
pessoa.setEmail("joao2@gmail.com");
// 2º Passo
//Alterar o usuario 2
System.out.println("pessoa:" + pessoa);
pd.update(pessoa);
//Comando para listaTodos e verificar a alteração
//Varrendo a lista vinda do findAll
//e imprimindo cada linha
//Classe objeto : lista de valores
for(Pessoa p : pd.findAll()){
System.out.println(p);
}
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
O scriptlet corresponde em atribuir código Java entre <% %> nas paginas jsp’s.
Nesse exemplo é utilizado o JSTL (JSP Standard Tag Library) que é uma
coleção de bibliotecas em Java que permite substituir o scriplet na pagina JSP
por tags JSTLs. Porque cada tag tem uma finalidade bem definida sendo
equivalente a programação Java nas paginas JSPs.
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
use aula;
package entity;
public Funcionario() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Funcionario [idFuncionario=" + idFuncionario
+ ", nome=" + nome + ", salario=" + salario + "]";
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
package persistence;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
import java.util.ArrayList;
import java.util.List;
import entity.Funcionario;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
open();
stmt = con.prepareStatement("select * from
Funcionario where idFuncionario = ?");
stmt.setInt(1, cod);
rs = stmt.executeQuery();
Funcionario funcionario = null;
if(rs.next()){
funcionario = new Funcionario();
funcionario.setIdFuncionario(rs.getInt(1));
funcionario.setNome(rs.getString(2));
funcionario.setSalario(rs.getDouble(3));
}
stmt.close();
close();
return funcionario;
}
}
package manager;
import java.util.ArrayList;
import java.util.List;
import persistence.FuncionarioDao;
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
package control;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.Funcionario;
import persistence.FuncionarioDao;
@WebServlet("/Controle")
public class Controle extends
HttpServlet {
private static final long serialVersionUID = 1L;
public Controle() {
super();
}
www.cotiinformatica.com.br 6
Apostila Java Básico Aula
www.cotiinformatica.com.br 7
Apostila Java Básico Aula
www.cotiinformatica.com.br 8
Apostila Java Básico Aula
sistema.jsp
<h2> Cadastro de Funcionario </h2>
Nome <p/>
<input type="text" name="nome" size="35">
<br/>
Salario <p/>
<input type="text" name="salario" size="35">
<br/>
<input type="submit" value="Cadastrar"/>
</form>
${msg}
<br/>
www.cotiinformatica.com.br 9
Apostila Java Básico Aula
lista.jsp
<%@page import="entity.*, persistence.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="mb" class="manager.ManagerBean"
scope="request"/>
<tr>
<th> Codigo </th>
<th> Funcionario </th>
<th> Salario </th>
<th> Alterar </th>
<th> Excluir </th>
</tr>
www.cotiinformatica.com.br 10
Apostila Java Básico Aula
</table>
${msg}
<br/>
<a href="index.jsp">Voltar para Principal</a>
altera.jsp
<%@page import="entity.*, persistence.*"%>
<%
if(request.getAttribute("funcionario") != null){
Codigo <p/>
<input type="text" name="cod"
value="<%=func.getIdFuncionario() %>" readonly="readonly"
size="5">
<br/>
Nome <p/>
<input type="text" name="nome"
value="<%=func.getNome() %>" size="35">
<br/>
Salario <p/>
www.cotiinformatica.com.br 11
Apostila Java Básico Aula
</form>
<%
}
%>
${msg}
<a href="index.jsp">Voltar</a>
www.cotiinformatica.com.br 12
Apostila Java Básico Aula
Modelagem 29
Modelagem de dados em Java com UML
O Objetivo deste artigo é fornecer uma introdução à modelagem de Classes
em Java utilizando diagramas UML. Neste exemplo iremos abordar o primeiro
tipo de relacionamento aprendido em Orientação a Objetos: SER (É-UM)
utilizado entre Classes e também entre Interfaces. Para tal iremos partir do
principio, ou seja, o tipo mais “puro” de objeto Java, denominado JavaBean
Classe JavaBean
Características:
Atributos privados.
Construtor default (vazio)
Sobrecarga de Construtor (Entrada de dados)
Encapsulamento
Sobrescrita dos métodos de Object
toString
equals
hashCode
Serialização (Opcional)
package heranca;
public Cliente() {
}
www.cotiinformatica.com.br 1
Apostila Java Básico Aula
Modelagem 29
@Override
public String toString() {
return idCliente + ", " + nome;
}
Visibilidades:
- private Acesso somente dentro da Classe.
~ default Acesso somente por classes do mesmo pacote.
# protected Acesso por pacote e por herança.
+ public Acesso total.
Herança (É-UM)
package heranca;
public PessoaFisica() {
}
www.cotiinformatica.com.br 2
Apostila Java Básico Aula
Modelagem 29
}
@Override
public String toString() {
return super.toString() + ", " + cpf;
}
Implementação (É-UM):
Componente de programação OO totalmente abstrato. Tem como
caracteristicas: Padronização.
www.cotiinformatica.com.br 3
Apostila Java Básico Aula
Modelagem 29
Métodos são publicos e abstratos (não tem corpo).
Quando uma classe implementa uma interface, ela é obrigada a
fornecer corpo para os metodos da interface (desde que não seja uma
classe abstrata).
package relacionamento;
www.cotiinformatica.com.br 4
Apostila Java Básico Aula
Modelagem 29
package entity;
public Automovel() {
}
@Override
public String toString() {
return idAutomovel + ", " + nome;
}
// Métodos abstratos
public abstract void setFabricante(String fabricante);
public abstract String getFabricante();
}
www.cotiinformatica.com.br 5
Apostila Java Básico Aula
Modelagem 29
No exemplo acima podemos dizer que CarroEsportivo É Automovel e
CarroExecutivo É Automovel, portanto, a herança da Classe abstrata configura
o uso de Polimorfismo. Note que Transformamos o objeto Automovel em
CarroEsportivo e CarroExecutivo
www.cotiinformatica.com.br 6