Introdução ao Java Básico: Classe Aluno
Introdução ao Java Básico: Classe Aluno
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
[Link] 1
Apostila Java Básico Aula
Cálculo 01
No projeto criado, expandir para a criação dos pacotes.
[Link] 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
[Link] 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.
[Link] 4
Apostila Java Básico Aula
Cálculo 01
Quando a classe é criada, o Eclipse apresenta dessa forma.
package entity;
[Link] 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.
[Link] 6
Apostila Java Básico Aula
Cálculo 01
public Aluno() {
// TODO Auto-generated constructor stub
}
[Link] 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 + "]";
}
[Link] 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”.
[Link] 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.
[Link] 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.
[Link] 11
Apostila Java Básico Aula
Cálculo 01
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
[Link] = situacao;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
[Link] = ativo;
}
}
[Link] 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.
[Link] 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 + "]";
}
[Link] 14
Apostila Java Básico Aula
Cálculo 01
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
[Link] = sexo;
}
public String getDisciplina() {
return disciplina;
}
public void setDisciplina(String disciplina) {
[Link] = 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) {
[Link] = media;
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
[Link] = situacao;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
[Link] 15
Apostila Java Básico Aula
Cálculo 01
[Link] = ativo;
}
Para testar o método main clique na classe Aluno -> Run as -> Java
Application ou CTRL + F11.
[Link] 16
Apostila Java Básico Aula
Cálculo 01
No console do Eclipse aparece o resultado do teste da main:
[Link] 17
Apostila Java Básico Aula
Cálculo 01
[Link] 18
Apostila Java Básico Aula
Cálculo 01
package control;
import [Link];
[Link] 19
Apostila Java Básico Aula
Cálculo 01
[Link]("Aprovado");
}
}
package control;
import [Link];
[Link] 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.
[Link] 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() {
}
[Link] 1
Apostila Java Básico Aula
Herança 02
@Override
public String toString() {
return "Pessoa [nome=" + nome + ", email=" + email + ",
sexo=" + sexo + "]";
}
[Link] 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 [Link];
[Link] 3
Apostila Java Básico Aula
Herança 02
}
public Cliente() {
// TODO Auto-generated constructor stub
}
[Link] 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() + "]";
}
[Link] 5
Apostila Java Básico Aula
Herança 02
}
public void setDataCadastro(Date dataCadastro) {
[Link] = dataCadastro;
}
[Link] 6
Apostila Java Básico Aula
Relacionamento 03
Classe Funcionario tem Endereco
package entity;
package entity;
public Endereco() {
}
@Override
[Link] 1
Apostila Java Básico Aula
Relacionamento 03
public String toString() {
return "Endereco [codigo=" + codigo + ", bairro=" +
bairro + ", cidade=" + cidade + "]";
}
[Link] 2
Apostila Java Básico Aula
Relacionamento 03
package entity;
public Funcionario() {
// TODO Auto-generated constructor stub
}
[Link] 3
Apostila Java Básico Aula
Relacionamento 03
[Link] = endereco;
}
@Override
public String toString() {
return "Funcionario [codigo=" + codigo + ", nome=" +
nome + ", endereco=" + endereco + "]";
}
[Link] 4
Apostila Java Básico Aula
Relacionamento 03
[Link] = endereco;
}
package entity;
public Funcionario() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Funcionario [codigo=" + codigo + ", nome=" +
nome + ", endereco=" + endereco + "]";
}
[Link] 5
Apostila Java Básico Aula
Relacionamento 03
[Link] = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
[Link] = endereco;
}
}
[Link] 6
Apostila Java Básico Aula
Relacionamento 03
[Link] 7
Apostila Java Básico Aula
Relacionamento 04
Classe Correntista FormataData usando Calendar
package entity;
import [Link];
import [Link];
public Correntista() {
}
@Override
public String toString() {
return "Correntista [codigo=" + codigo + ", nome=" +
nome + ", saldo=" + saldo + ", email=" + email + ",
[Link] 1
Apostila Java Básico Aula
Relacionamento 04
dataCadastro=" + new SimpleDateFormat("dd/MM/yyyy").format
([Link]()) + "]";
}
[Link] 2
Apostila Java Básico Aula
Relacionamento 04
Calendar x = [Link]();
[Link](2015, 01 ,10);
Correntista c2 = new
Correntista(10,"lu",5000.,"lu@[Link]", x );
[Link](c2);
[Link]("Ano :" +
[Link]().get([Link]));
[Link]("Mes :" + (1 +
[Link]().get([Link])) );
[Link]("Dia :" +
[Link]().get(Calendar.DAY_OF_MONTH));
}
}
[Link] 3
Apostila Java Básico Aula
Relacionamento 04
[Link] 4
Apostila Java Básico Aula
Cálculo Produto 05
Classe Produto e Calculo de Produto
package entity;
public Produto() {
[Link] 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 + "]";
}
[Link] 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) {
[Link] = desconto;
}
}
package control;
import [Link];
[Link] 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);
[Link](p);
Produto p2 = new
Produto(12,"Hiphone",2000.,1,"celular",true);
[Link](p2);
[Link]([Link]());
[Link]("Total :" +
( ([Link]() - [Link]()) *
[Link]() ) );
}
}
Produto p = new
Produto(10,"arroz",4.,10,"alimento",true);
CalcularProduto cp = new CalcularProduto();
[Link] 4
Apostila Java Básico Aula
Cálculo Produto 05
[Link](p);
}
[Link] 5
Apostila Java Básico Aula
package entity;
import [Link];
import [Link];
import [Link];
{
salarioLiquido = 0.;
[Link] 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 + "]";
}
[Link] 2
Apostila Java Básico Aula
[Link] 3
Apostila Java Básico Aula
@Override
public boolean equals(Object o){
Funcionario f = (Funcionario) o;
return [Link]([Link]());
}
[Link] 4
Apostila Java Básico Aula
[Link] 5
Apostila Java Básico Aula
@Override
public int compareTo(Funcionario f) {
return
[Link]([Link]());
}
[Link](lista);
[Link]("Lista Ordenada :" + lista);
[Link]("\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.
[Link] 6
Apostila Java Básico Aula
[Link] 7
Apostila Java Básico Aula
package control;
import [Link];
[Link] 8
Apostila Java Básico Aula
package view;
import [Link];
import [Link];
[Link] 9
Apostila Java Básico Aula
[Link] 10
Apostila Java Básico Aula
try{
Funcionario f = new Funcionario();
InputFuncionario ifu = new InputFuncionario();
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link](f);
}catch(Exception ex){
[Link]([Link]());
}
}
}
[Link] 11
Apostila Java Básico Aula
[Link] 12
Apostila Java Básico Aula
[Link] 13
Apostila Java Básico Aula
[Link] 14
Apostila Java Básico Aula
[Link] 15
Apostila Java Básico Aula
package view;
import [Link];
import [Link];
import [Link];
NumberFormat nf;
public FormatOuput() {
nf = [Link](new Locale("pt","BR"));
[Link](2);
[Link](2);
}
Vamos criar métodos para formatar cada uma das saídas dos valores.
[Link] 16
Apostila Java Básico Aula
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
Imprime as saídas com nome e o salário bruto já formatado.
[Link] 17
Apostila Java Básico Aula
[Link] 18
Apostila Java Básico Aula
[Link] 19
Apostila Java Básico Aula
[Link] 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 [Link];
import [Link];
import [Link];
[Link] 21
Apostila Java Básico Aula
[Link](null, linha);
}
[Link] 22
Apostila Java Básico Aula
[Link] 23
Apostila Java Básico Aula
[Link] 24
Apostila Java Básico Aula
[Link] 25
Apostila Java Básico Aula
[Link] 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) {
[Link] = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
[Link] = sexo;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
[Link] = 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 [Link];
import [Link];
[Link]("joao");
[Link](10000.);
[Link]("Nome: " + [Link]() + ", " +
"Salário Final: R$ " + ([Link]() + [Link]()));
5
Apostila Java Básico Aula
Herança 07
Funcionario f1= new Estagiario();
[Link](10);
[Link]("carlos");
[Link](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 + "]";
}
[Link] 1
Apostila Java Básico Aula
Grava Arquivo 08
}
public void setNome(String nome) {
[Link] = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
[Link] = email;
}
@Override
public boolean equals(Object o){
Cliente c = (Cliente) o;
return [Link]([Link]());
}
@Override
public int hashCode(){
return [Link](idCliente).length();
}
}
package manager;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
[Link] 2
Apostila Java Básico Aula
Grava Arquivo 08
public ManagerBeanCliente() {
lista = new ArrayList<Cliente>();
}
[Link] 3
Apostila Java Básico Aula
Grava Arquivo 08
return [Link]().compareTo([Link]());
}
};
[Link](lista, comp);
}
[Link](c1);
[Link](c2);
[Link](c3);
[Link](c4);
[Link]();
[Link]([Link]());
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.
[Link] 4
Apostila Java Básico Aula
Grava Arquivo 08
[Link](lst, comp);
[Link]("Indice :" + [Link](11));
[Link](lst);
[Link]("Valor: " + [Link]([Link](21)) );
}
}
[Link] 5
Apostila Java Básico Aula
Grava Arquivo 08
[Link] 6
Apostila Java Básico Aula
Grava Arquivo 08
package io;
import [Link];
package io;
import [Link];
import [Link];
import [Link];
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 ([Link]()){
[Link]("Diretorio Existente ...");
}else{
[Link]();
[Link]("Diretorio Criado ...");
[Link] 7
Apostila Java Básico Aula
Grava Arquivo 08
}
fw = new FileWriter("c:/javabasico/[Link]",true);
}
@Override
public void writeArquivo(Cliente c) throws Exception {
[Link]([Link]() + "\n");
}
@Override
public void close() throws Exception {
[Link]();
[Link]();
}
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.
[Link] 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.
[Link] 9
Apostila Java Básico Aula
Grava Arquivo 08
Foi criado um arquivo em formato txt contendo os dados.
[Link] 10
Apostila Java Básico Aula
JUnit, Validação 09
Classe Aluno e Disciplina, Validação JUnit, gravação
no MySql
package entity;
import [Link];
public Aluno() {
[Link] 1
Apostila Java Básico Aula
JUnit, Validação 09
[Link] = email;
[Link] = listaDisciplina;
}
@Override
public String toString() {
return "Aluno [idAluno=" + idAluno + ", nome=" + nome +
", email=" + email + ", listaDisciplina=" + listaDisciplina + ",
cr=" + cr + "]";
}
[Link] 2
Apostila Java Básico Aula
JUnit, Validação 09
[Link] = ativo;
}
}
package entity;
public Disciplina() {
[Link] 3
Apostila Java Básico Aula
JUnit, Validação 09
[Link] = 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 + "]";
}
[Link] 4
Apostila Java Básico Aula
JUnit, Validação 09
[Link] = situacao;
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
[Link] = aluno;
}
}
package control;
import [Link];
import [Link];
import [Link];
return true;
}
[Link] 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.
[Link] 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.
[Link] 7
Apostila Java Básico Aula
JUnit, Validação 09
[Link](a);
[Link](a);
[Link](a);
[Link](a);
[Link](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.
[Link] 8
Apostila Java Básico Aula
JUnit, Validação 09
package entity;
import [Link];
Resultado no console...
[Link] 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.
[Link] 10
Apostila Java Básico Aula
JUnit, Validação 09
Próximo passo: Clicar em Junit e depois Next.
Finish.
[Link] 11
Apostila Java Básico Aula
JUnit, Validação 09
package test;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
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();
}
[Link] 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(){
[Link]("aa");
[Link]("Nome fora da faixa de 2 a 35",
new ValidaAluno().validaNome(aluno));
}
@Test
public void testConteudoNome(){
[Link]("");
[Link]("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.
[Link] 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.
[Link] 14
Apostila Java Básico Aula
JUnit, Validação 09
Se modificarmos a classe teremos um novo resultado.
package test;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@Before
public void init(){
aluno=new Aluno();
}
@Test
public void testQuantidadeLimiteNome(){
[Link]("luciana");
[Link]("Nome fora da faixa de 2 a 35",
new ValidaAluno().validaNome(aluno));
}
@Test
public void testConteudoNome(){
[Link]("Luciana");
[Link]("Nome não pode ter caracter especial",
new ValidaAluno().validaNome(aluno));
}
}
[Link] 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.
[Link] 16
Apostila Java Básico Aula
JUnit, Validação 09
[Link] 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.
[Link] 18
Apostila Java Básico Aula
JUnit, Validação 09
Copiar esses comandos para a janela do MySql.
package persistence;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
Connection con;
PreparedStatement stmt;
ResultSet rs;
[Link] 19
Apostila Java Básico Aula
JUnit, Validação 09
CallableStatement call;
package manager;
import [Link];
import [Link];
import [Link];
[Link] 20
Apostila Java Básico Aula
JUnit, Validação 09
private Aluno aluno;
public ManagerBean(Aluno a) {
[Link] = a;
[Link](new
ArrayList<Disciplina>());
}
[Link] 21
Apostila Java Básico Aula
JUnit, Validação 09
}
No console...
[Link] 22
Apostila Java Básico Aula
ManyToMany 10
JAVA BÁSICO – Relacionamento ManyToMany
package entity;
import [Link];
import [Link];
public Medico() {
}
[Link]
Apostila Java Básico Aula
ManyToMany 10
public Medico(List<Paciente> pacientes) {
[Link] = pacientes;
}
@Override
public String toString() {
return "Medico [idMedico=" + idMedico + ", nomeMedico="
+ nomeMedico + ", especializacao=" + especializacao + "]";
}
[Link]
Apostila Java Básico Aula
ManyToMany 10
if (pacientes==null){
pacientes = new ArrayList<Paciente>();
}
[Link](p);
}
@Override
public int compareTo(Medico m) {
return [Link]([Link]()) ;
}
}
[Link]
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 [Link];
import [Link];
public Paciente() {
@Override
public String toString() {
return "Paciente [idPaciente=" + idPaciente + ",
nomePaciente=" + nomePaciente + ", medicos=" + medicos + "]";
}
[Link]
Apostila Java Básico Aula
ManyToMany 10
return idPaciente;
}
public void setIdPaciente(Integer idPaciente) {
[Link] = idPaciente;
}
public String getNomePaciente() {
return nomePaciente;
}
public void setNomePaciente(String nomePaciente) {
[Link] = nomePaciente;
}
public List<Medico> getMedicos() {
return medicos;
}
public void setMedicos(List<Medico> medicos) {
[Link] = medicos;
}
@Override
public int compareTo(Paciente p) {
return [Link]([Link]());
}
@Override
[Link]
Apostila Java Básico Aula
ManyToMany 10
public boolean equals(Object obj) {
Paciente p = (Paciente) obj;
return [Link]([Link]());
}
}
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 [Link];
import [Link];
[Link](p1);
[Link](p2);
[Link](p3);
[Link](p1);
[Link](m1);
[Link](m2);
}
}
[Link]
Apostila Java Básico Aula
ManyToMany 10
No console...
[Link]
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 + "]";
}
[Link] 1
Apostila Java Básico Aula
JDBC 11
[Link] = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
[Link] = sexo;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
[Link] = ativo;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
[Link] = salario;
}
}
[Link] 2
Apostila Java Básico Aula
JDBC 11
Clicar em Java Build Path e Add External JARs.
[Link] 3
Apostila Java Básico Aula
JDBC 11
Depois de adicionar a lib, clicar em Apply e depois OK.
[Link] 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:
[Link] 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...
[Link] 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 [Link];
import [Link];
import [Link];
import [Link];
import [Link];
[Link] 7
Apostila Java Básico Aula
JDBC 11
getConnection("jdbc:mysql://localhost:3306/aula11","root","coti"
);
}
No console...
package persistence;
import [Link];
import [Link];
import [Link];
[Link] 8
Apostila Java Básico Aula
JDBC 11
public class FuncionarioDao extends Dao {
[Link](1,[Link]());
[Link](2,[Link]());
[Link](3,[Link]());
[Link](4,[Link]());
[Link](5, ([Link]())?1:0);
[Link]();
[Link]();
close();
}
[Link] 9
Apostila Java Básico Aula
JDBC 11
[Link]( [Link](1));
[Link]( [Link](2));
[Link]( [Link]("sexo"));
[Link]([Link](4));
[Link](( [Link](5) ==1 )?true:false);
[Link](f);
}
close();
return lista;
[Link] 10
Apostila Java Básico Aula
JDBC 11
}
No console..
[Link] 11
Apostila Java Básico Aula
JDBC 11
No banco...
[Link] 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 [Link];
import [Link];
import [Link];
import [Link];
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 +"]";
}
[Link] 1
Apostila Java Básico Aula
List - HashCode 12
public Integer getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(Integer idUsuario) {
[Link] = idUsuario;
}
public String getNomeUsuario() {
return nomeUsuario;
}
public void setNomeUsuario(String nomeUsuario) {
[Link] = nomeUsuario;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
[Link] = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
[Link] = senha;
}
[Link] 2
Apostila Java Básico Aula
List - HashCode 12
}
@Override
public int hashCode(){
String quantidade = [Link](idUsuario);
return [Link]();
}
@Override
public int compareTo(Usuario u) {
return [Link]([Link]());
}
[Link] 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...
[Link] 4
Apostila Java Básico Aula
List - HashCode 12
login=lu@[Link]], Usuario [idUsuario=100, nomeUsuario=jose,
login=jose@[Link]]]
[Link] 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 + "]";
}
[Link] 1
Apostila Java Básico Aula
Agregação - Cálculo 13
public Integer getPontos() {
return pontos;
}
public void setPontos(Integer pontos) {
[Link] = pontos;
}
public Pontuacao getPontuacao() {
return pontuacao;
}
public void setPontuacao(Pontuacao pontuacao) {
[Link] = pontuacao;
}
}
package entity;
public Pontuacao() {
@Override
public String toString() {
return "Pontuacao [idCartao=" + idCartao + ", cor=" +
cor + "]";
}
[Link] 2
Apostila Java Básico Aula
Agregação - Cálculo 13
return idCartao;
}
public void setIdCartao(Integer idCartao) {
[Link] = idCartao;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
[Link] = cor;
}
package entity;
import [Link];
import [Link];
public GerenteProjeto() {
[Link] 3
Apostila Java Básico Aula
Agregação - Cálculo 13
public GerenteProjeto(Integer codigo, String nome,
List<Equipe> equipes) {
[Link] = codigo;
[Link] = nome;
[Link] = equipes;
}
@Override
public String toString() {
return "GerenteProjeto [codigo=" + codigo + ", nome=" +
nome + ", equipes=" + equipes + "]";
}
[Link] 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 +
"]";
}
[Link] 5
Apostila Java Básico Aula
Agregação - Cálculo 13
}
public String getNomeFuncionario() {
return nomeFuncionario;
}
public void setNomeFuncionario(String nomeFuncionario) {
[Link] = nomeFuncionario;
}
public void setGerente(GerenteProjeto gerente) {
[Link] = gerente;
}
[Link] 6
Apostila Java Básico Aula
Agregação - Cálculo 13
[Link]([Link]() + ", GP=" +
[Link]().getNome());
}
}
No console...
lu, GP=stuart
anthony, GP=null
garrito, GP=stuart
package control;
import [Link];
import [Link];
[Link] 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.
[Link]([Link]() + "," +
[Link]().getIdCartao());
[Link]("Pontos :" + [Link]());
[Link]([Link]() + "," +
[Link]().getIdCartao());
[Link]("Pontos :" + [Link]());
}
}
No console...
leandro,1001
Pontos :130
noe,1002
Pontos :50
[Link] 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 [Link];
import [Link];
public Aluno() {
@Override
public String toString() {
return "Aluno [idAluno=" + idAluno + ", nome=" + nome +
", disciplina=" + disciplina + ", nota1=" + nota1 + ", nota2=" +
nota2 + ", media=" + media + ", endereco=" + endereco + "]";
}
[Link] 1
Apostila Java Básico Aula
Mapa 14
[Link] 2
Apostila Java Básico Aula
Mapa 14
@Override
public boolean equals(Object obj) {
Aluno a = (Aluno) obj;
return [Link]([Link]());
}
@Override
public int compareTo(Aluno a) {
return [Link]([Link]());
}
@Override
public int hashCode() {
return [Link](idAluno).length();
}
[Link] 3
Apostila Java Básico Aula
Mapa 14
[Link]("Resposta: " +
[Link](0).getEndereco());
}
}
No console...
package entity;
public Endereco() {
[Link] 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 [Link];
import [Link];
import [Link];
[Link] 5
Apostila Java Básico Aula
Mapa 14
import [Link];
[Link]("Chaves: ");
for (Integer chave : [Link]()){
[Link](chave);
}
[Link]("Nomes: ");
for (String texto : [Link]()){
[Link](texto);
}
[Link] 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.
[Link] 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
[Link] 8
Apostila Java Básico Aula
Mapa 14
endereco=null]=Endereco [idEndereco=1, bairro=tijuca,
cidade=rj]}
[Link] 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 [Link]();
}
[Link] 1
Apostila Java Básico Aula
Enum 15
}
public Integer getPos() {
return pos;
}
public void setPos(Integer pos) {
[Link] = 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
[Link] 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):
[Link] 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() {
[Link] 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) {
[Link] = placa;
}
}
package entity;
public Moto() {
[Link] 3
Apostila Java Básico Aula
Polimorfismo Interface 16
[Link] = idMoto;
[Link] = modelo;
[Link] = placa;
}
@Override
public String toString() {
return idMoto + ", " + modelo + ", " + placa;
}
@Override
public String getPlaca() {
return placa;
}
@Override
public void setPlaca(String placa) {
[Link] = placa;
}
[Link] 4
Apostila Java Básico Aula
Polimorfismo Interface 16
package main;
import [Link];
import [Link];
import [Link];
[Link](v1);
[Link] 5
Apostila Java Básico Aula
Polimorfismo Interface 16
[Link](v2);
}
}
No console...
1, Ferrari, ABC-1234
2, Suzuki, ABC-4321
[Link] 6
Apostila Java Básico Aula
package entity;
[Link] 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() {
[Link] 2
Apostila Java Básico Aula
@Override
public String toString() {
return [Link]() + ", " + ano + ", " + fabricante;
}
@Override
public String getFabricante() {
return fabricante;
}
@Override
public void setFabricante(String fabricante) {
[Link] = fabricante;
}
}
package entity;
public CarroExecutivo() {
[Link] 3
Apostila Java Básico Aula
@Override
public String toString() {
return [Link]() + ", " + modelo + ", " + fabricante;
}
@Override
public String getFabricante() {
return fabricante;
}
@Override
public void setFabricante(String fabricante) {
[Link] = fabricante;
}
}
package main;
import [Link];
import [Link];
import [Link];
[Link] 4
Apostila Java Básico Aula
No console...
1, Ferrari, 2012, Ferrari Italia
2, C4, Sedan, Citroen
[Link] 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.
[Link] 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
[Link] 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;
}
[Link] 3
Apostila Java Básico Aula
Classes em OO 18
[Link] = nome;
}
}
package entity;
public Pessoa() {
}
[Link] 4
Apostila Java Básico Aula
Classes em OO 18
//Impressão do objeto (toString)
[Link]("Dados de Pessoa: " + p);
}
}
No console...
Dados de Pessoa: 1, Sergio
[Link] 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.
[Link] 1
Apostila Java Básico Aula
Interface 19
Interface IConexao
package entity;
package entity;
package entity;
@Override
public void close() throws Exception {
[Link]("Fechar Conexao Banco de Dados");
}
}
[Link] 2
Apostila Java Básico Aula
Interface 19
package entity;
@Override
public void close() throws Exception {
[Link]("Fechar Conexao Arquivo");
}
@Override
public void write() throws Exception {
[Link]("Escrever no Arquivo");
}
@Override
public String read() throws Exception {
return "Ler do Arquivo";
}
[Link] 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() {
[Link] 1
Apostila Java Básico Aula
Encapsulamento 20
return "Aluno [idAluno=" + idAluno + ", nomeAluno=" +
nomeAluno + ", nota1=" + nota1 + ", nota2=" + nota2 + "]";
}
package main;
import [Link];
[Link] 2
Apostila Java Básico Aula
Encapsulamento 20
a1.setNota2(8.);
[Link]("Nome: " + [Link]() +
"Nota1: " + a1.getNota1() +
"Nota2: " + a1.getNota2()
);
//------------------------------------------------
// O encapsulamento utilizando Construtor cheio e
// toString ( representado pelo objeto )
Aluno a2 = new Aluno(2,"Joao",8.,6.);
[Link]("Dados: " + a2);
}
}
No console..
Nome: luizNota1: 7.0Nota2: 8.0
Dados: Aluno [idAluno=2, nomeAluno=Joao, nota1=8.0, nota2=6.0]
[Link] 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.
[Link] 1
Apostila Java Básico Aula
Classe Abstrata 21
package entity;
public Funcionario() {
}
@Override
public String toString() {
return "Funcionario [nome=" + nome + ", salario=" + salario
+ "]";
}
[Link] 2
Apostila Java Básico Aula
Classe Abstrata 21
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
[Link] = salario;
}
package entity;
package main;
import [Link];
[Link] 3
Apostila Java Básico Aula
Classe Abstrata 21
[Link]("Jose");
[Link](5000.);
[Link](100.);
[Link]("Salário com Bonus : " +
[Link]());
[Link]();
[Link]("Salário com Desconto : " +
[Link]());
}
}
No console...
Nome 5000.0
Salario Bruto : 5000.0
Salário com Bonus : 5100.0
Salário com Desconto : 4845.0
[Link] 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 [Link]([Link]());
// Criando o critério de igualdade
}
[Link] 1
Apostila Java Básico Aula
Equals, Comparable 22
}
public void setCodigo(Integer codigo) {
[Link] = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
}
package main;
import [Link];
No console...
true
[Link] 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 [Link]([Link]());
// Criando o critério de igualdade
}
[Link] 3
Apostila Java Básico Aula
Equals, Comparable 22
return nome;
}
public void setNome(String nome) {
[Link] = nome;
}
@Override
public int compareTo(Pessoa obj) {
// Utilizando a forma abaixo, a ordenação será crescente
return [Link](((Pessoa)obj).getCodigo());
// Utilizando a forma abaixo, a ordenação será decrescente
// return (((Pessoa)obj).getCodigo()).compareTo([Link]);
}
}
package main;
import [Link];
import [Link];
import [Link];
import [Link];
[Link] 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]]
[Link] 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 +
"]";
}
[Link] 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 + "]";
}
[Link] 2
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
return descricao;
}
public void setDescricao(String descricao) {
[Link] = descricao;
}
public String imprimirDescricao(){
return "Funcionario Padrao";
}
}
package entity;
@Override
public String imprimirDescricao() {
return "Funcionario CLT";
}
}
package main;
import [Link];
import [Link];
[Link] 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;
[Link] 4
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
package entity;
@Override
public void close() throws Exception {
[Link]("Fechar o Arquivo");
}
}
package main;
import [Link];
No console...
Abrir o Arquivo
Fechar o Arquivo
[Link] 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 +
"]";
}
[Link] 6
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
Quando ocorre é declarado dois ou mais métodos na mesma classe.
package entity;
package entity;
[Link] 7
Apostila Java Básico Aula
Sobrescrita / Sobrecarga 23
package main;
import [Link];
No console...
Numero1
Numero2.0
Numero3
Numeros354
[Link] 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:
[Link] 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.
[Link] 2
Apostila Java Básico Aula
Tratamento de Erro 24
package main;
import [Link];
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
[Link](resp);
} catch (Exception e) {
// Apresenta o Erro by /zero no entanto , o projeto continua
funcionando
// Até o último comando.
[Link]("Error: " + [Link]());
}
finally{
[Link]("Sempre executa o finally \n ");
}
[Link]("continua");
}
}
No console...
Error: Numero 2 não pode ser zero ou menor
Sempre executa o finally
Continua
[Link] 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.
[Link] 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.
[Link] 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 + "]";
}
[Link] 3
Apostila Java Básico Aula
Padrão MVC 25
}
package control;
import [Link];
import [Link];
import [Link];
[Link] 4
Apostila Java Básico Aula
Padrão MVC 25
package view;
import [Link];
package main;
import [Link];
import [Link];
import [Link];
[Link] 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{
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link](p);
[Link](p);
[Link](p);
[Link]("Dados" + p);
}catch(Exception ex){
[Link]("Error" + [Link]());
}
}
No console...
Digite o Codigo :
5
Digite o Nome :
luciana
Digite a Idade :
22
DadosPessoa [idPessoa=5, nome=luciana, idade=22]
[Link] 6
Apostila Java Básico Aula
package control;
import [Link];
package entity;
public Pessoa() {
// TODO Auto-generated constructor stub
}
[Link] 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 [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
[Link] 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
[Link]();
//Nome do arquivo
File arquivo = new File(f, "[Link]");
//Aponta para o nome do arquivo
fw = new FileWriter(arquivo, true);
}
@Override
public void closeWrite() throws Exception {
[Link](); // Fechar o arquivo
}
@Override
public void write(Pessoa p) throws Exception {
//Escreve no arquivo
[Link]([Link]() + "\n" );
//Atualiza o arquivo
[Link]();
}
@Override
public void openRead() throws Exception {
//Aponta para o arquivo a ser lido
fr = new FileReader("c:/temp/[Link]");
//Colocar os dados no buffer
br = new BufferedReader(fr);
}
@Override
public void closeRead() throws Exception {
[Link](); // fechar o buffer
[Link] 3
Apostila Java Básico Aula
@Override
public List read() throws Exception {
package main;
import [Link];
import [Link];
[Link] 4
Apostila Java Básico Aula
//Gravar os objetos p1 e p2
[Link](p1);
[Link](p2);
[Link]("Dados Gravados");
} catch (Exception e) {
[Link]("Error: " + [Link]());
}
}
[Link] 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() {
}
[Link] 1
Apostila Java Básico Aula
Padrão DAO 27
public Pessoa(Integer idPessoa, String nomePessoa, String
email) {
super();
[Link] = idPessoa;
[Link] = nomePessoa;
[Link] = email;
}
@Override
public String toString() {
return "Pessoa [idPessoa=" + idPessoa + ",
nomePessoa=" + nomePessoa + ", email=" + email + "]";
}
package persistence;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
[Link] 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
[Link] 3
Apostila Java Básico Aula
Padrão DAO 27
package persistence;
import [Link];
import [Link];
import [Link];
[Link] 4
Apostila Java Básico Aula
Padrão DAO 27
public Pessoa finallByCod(int cod) throws Exception {
open();
stmt = [Link]("select * from
pessoa where idPessoa = ? ");
rs = [Link]();
Pessoa p = null;
if ([Link]()) {
p = new Pessoa();
[Link]([Link]("idPessoa"));
[Link]([Link]("nome"));
[Link]([Link]("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 [Link].
[Link] 5
Apostila Java Básico Aula
Padrão DAO 27
[Link]
# O símbolo # serve para comentar no [Link]
package main;
import [Link];
import [Link];
[Link] 6
Apostila Java Básico Aula
Padrão DAO 27
//Comando para gravar no banco;
[Link](p1);
[Link](p2);
//Comando para listaTodos
[Link]([Link]());
//Comando para alterar uma pessoa;
// 1º Passo
//Busca pelo Codigo
// 2 -> é a chave primaria de pessoa no banco
Pessoa pessoa = [Link](2);
[Link]("pessoa:" + pessoa);
[Link]("joao2@[Link]");
// 2º Passo
//Alterar o usuario 2
[Link]("pessoa:" + pessoa);
[Link](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 : [Link]()){
[Link](p);
}
[Link] 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.
[Link] 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 + "]";
}
[Link] 2
Apostila Java Básico Aula
package persistence;
import [Link];
import [Link];
import [Link];
import [Link];
[Link] 3
Apostila Java Básico Aula
import [Link];
import [Link];
import [Link];
[Link] 4
Apostila Java Básico Aula
open();
stmt = [Link]("select * from
Funcionario where idFuncionario = ?");
[Link](1, cod);
rs = [Link]();
Funcionario funcionario = null;
if([Link]()){
funcionario = new Funcionario();
[Link]([Link](1));
[Link]([Link](2));
[Link]([Link](3));
}
[Link]();
close();
return funcionario;
}
}
package manager;
import [Link];
import [Link];
import [Link];
[Link] 5
Apostila Java Básico Aula
package control;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@WebServlet("/Controle")
public class Controle extends
HttpServlet {
private static final long serialVersionUID = 1L;
public Controle() {
super();
}
[Link] 6
Apostila Java Básico Aula
[Link] 7
Apostila Java Básico Aula
[Link] 8
Apostila Java Básico Aula
[Link]
<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/>
[Link] 9
Apostila Java Básico Aula
[Link]
<%@page import="entity.*, persistence.*"%>
<%@ taglib prefix="c" uri="[Link] %>
<jsp:useBean id="mb" class="[Link]"
scope="request"/>
<tr>
<th> Codigo </th>
<th> Funcionario </th>
<th> Salario </th>
<th> Alterar </th>
<th> Excluir </th>
</tr>
[Link] 10
Apostila Java Básico Aula
</table>
${msg}
<br/>
<a href="[Link]">Voltar para Principal</a>
[Link]
<%@page import="entity.*, persistence.*"%>
<%
if([Link]("funcionario") != null){
Codigo <p/>
<input type="text" name="cod"
value="<%=[Link]() %>" readonly="readonly"
size="5">
<br/>
Nome <p/>
<input type="text" name="nome"
value="<%=[Link]() %>" size="35">
<br/>
Salario <p/>
[Link] 11
Apostila Java Básico Aula
</form>
<%
}
%>
${msg}
<a href="[Link]">Voltar</a>
[Link] 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() {
}
[Link] 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() {
}
[Link] 2
Apostila Java Básico Aula
Modelagem 29
}
@Override
public String toString() {
return [Link]() + ", " + cpf;
}
Implementação (É-UM):
Componente de programação OO totalmente abstrato. Tem como
caracteristicas: Padronização.
[Link] 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;
[Link] 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();
}
[Link] 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
[Link] 6