Mini Curso Java Day(Eliane Raquel)

111
Mini-Curso de Mini-Curso de Java Básico Java Básico

description

 

Transcript of Mini Curso Java Day(Eliane Raquel)

Page 1: Mini Curso Java Day(Eliane Raquel)

Mini-Curso de Mini-Curso de Java Básico Java Básico

Page 2: Mini Curso Java Day(Eliane Raquel)

Quem vos fala...Quem vos fala...

Page 3: Mini Curso Java Day(Eliane Raquel)

Eliane CraveiroEliane Craveiro Estudante do curso

de Análise e Desenvolvimento de Sistemas

Trabalha com Java no projeto SIEP, da SETEC/MEC

Desenvolve com Java desde 2007

Raquel CarsiRaquel Carsi Concluinte do curso

de Análise e Desenvolvimento de Sistemas

Trabalha com Java no projeto SIEP, da SETEC/MEC

Desenvolve com Java desde 2006

Weblog: raquelcarsi.wordpress.com

Page 4: Mini Curso Java Day(Eliane Raquel)

Sobre o mini-cursoSobre o mini-curso

Page 5: Mini Curso Java Day(Eliane Raquel)

Apresentar os principais conceitos de Java

Apresentar conceitos básicos de Orientação a Objetos

Elaborar práticas

Em apenas 3 horas !!!

Page 6: Mini Curso Java Day(Eliane Raquel)

...um detalhe...um detalhe

Perguntas, dúvidas, sugestões são SEMPRE bem vindos, a sua participação no minicurso é fundamental.

Page 7: Mini Curso Java Day(Eliane Raquel)

AgendaAgenda

Page 8: Mini Curso Java Day(Eliane Raquel)

O que é Java?Instalando ...Criando o primeiro programaVariáveis primitivasTipo PrimitivosControle de FluxoOrientação a ObjetosArrayModificadores de AcessoHerança e polimorfismoClasses AbstratasInterface

Page 9: Mini Curso Java Day(Eliane Raquel)

O que é Java? O que é Java?

Características;Características;

Máquina Virtual;Máquina Virtual;

Java Lento;Java Lento;

JVM? JRE? JDK?JVM? JRE? JDK?

JavaJava

Page 10: Mini Curso Java Day(Eliane Raquel)

O que é Java?O que é Java?

Linguagem de Programação;

Criada em 1991;

James Gosling;

Oak ( Carvalho );

Page 11: Mini Curso Java Day(Eliane Raquel)

Características...Características...

Simples;Orientada a Objetos;Familiar;Robusta;Segura;Portável (independente de plataforma);

Page 12: Mini Curso Java Day(Eliane Raquel)

JVM – Java Virtual MachineJVM – Java Virtual Machine

Page 13: Mini Curso Java Day(Eliane Raquel)

Fases de um ProgramaFases de um Programa

Page 14: Mini Curso Java Day(Eliane Raquel)

JVM? JVM?

Máquina virtual imaginária;

Portabilidade do Java;

Diversidade de JVMs.

Page 15: Mini Curso Java Day(Eliane Raquel)

JVM: Coletor de Lixo – Garbage JVM: Coletor de Lixo – Garbage CollectionCollection

Page 16: Mini Curso Java Day(Eliane Raquel)

Write once, run anywhere!!

Page 17: Mini Curso Java Day(Eliane Raquel)

JDK? JRE?JDK? JRE?

JDK ◦ O Java Development Kit é composto pelo JRE e

um conjunto de ferramentas úteis ao desenvolvedor Java;

◦ Onde baixar:

JRE◦ O Java Runtime Environment contém tudo

aquilo que um usuário comum precisa para executar uma aplicação Java (JVM e bibliotecas), como o próprio nome diz é o “Ambiente de execução Java”.

Page 18: Mini Curso Java Day(Eliane Raquel)

DesvantagensDesvantagens

Java lento???

Page 19: Mini Curso Java Day(Eliane Raquel)

Instalando o JavaInstalando o Java

Page 20: Mini Curso Java Day(Eliane Raquel)
Page 21: Mini Curso Java Day(Eliane Raquel)
Page 22: Mini Curso Java Day(Eliane Raquel)
Page 23: Mini Curso Java Day(Eliane Raquel)
Page 24: Mini Curso Java Day(Eliane Raquel)
Page 25: Mini Curso Java Day(Eliane Raquel)
Page 26: Mini Curso Java Day(Eliane Raquel)
Page 27: Mini Curso Java Day(Eliane Raquel)
Page 28: Mini Curso Java Day(Eliane Raquel)

Criando e Executando o Primeiro Criando e Executando o Primeiro Programa (Hello Word)Programa (Hello Word)

Page 29: Mini Curso Java Day(Eliane Raquel)

...na linha de comando....na linha de comando.

Page 30: Mini Curso Java Day(Eliane Raquel)

No bloco de notas:

public class HelloWord{

public static void main (String[] args){

System.out.println ("Ola mundo");

}}

Page 31: Mini Curso Java Day(Eliane Raquel)

Gerar o Bytecode usando Gerar o Bytecode usando javacjavac

Page 32: Mini Curso Java Day(Eliane Raquel)
Page 33: Mini Curso Java Day(Eliane Raquel)
Page 34: Mini Curso Java Day(Eliane Raquel)

Se tudo ocorrer bem....Se tudo ocorrer bem....

Page 35: Mini Curso Java Day(Eliane Raquel)
Page 36: Mini Curso Java Day(Eliane Raquel)

...usando o eclipse:...usando o eclipse:

Page 37: Mini Curso Java Day(Eliane Raquel)

Apresentando o EclipseApresentando o Eclipse

Objetivo de uma IDE: ◦ Auxiliar no

desenvolvimento;◦ Outra IDE open source:

Netbeans

Page 38: Mini Curso Java Day(Eliane Raquel)

VariáveisVariáveis

Page 39: Mini Curso Java Day(Eliane Raquel)

Declarando variáveisDeclarando variáveis

Faça assim:

TipoDaVariavel nomeDaVariavel;

Exemplo:

int idade;

Uma idade do tipo int que guarda um número inteiro

A partir de agora você pode usá-la!

Page 40: Mini Curso Java Day(Eliane Raquel)

Usando variáveisUsando variáveis

Você pode atribuir valores!

idade=15;

Quer dizer que idade agora vale 15

Você pode usar esse valor!

System.out.println(idade);

O valor da idade será mostrado na tela.

Page 41: Mini Curso Java Day(Eliane Raquel)

Usando variáveisUsando variáveis

Você pode declarar uma outra variável e usar o valor da variável idade!

int idadeNoAnoQueVem;idadeNoAnoQueVem = idade + 1;

Idade agora vale 16

Page 42: Mini Curso Java Day(Eliane Raquel)

Usando variáveisUsando variáveis

Quando você declara, você já pode atribuir um valor!

Exemplo:

int idade = 15;

Você pode usar os operadores +,-,/, * e o %.

int quatro = 2 + 2;int seis = 3 * 2;int um = 5%2;

5 dividido por 2 dá 2 e tem resto 1. Esse operador % pega o resto da divisão inteira.

Page 43: Mini Curso Java Day(Eliane Raquel)

Usando variáveisUsando variáveis

Para armazenar valores reais use double!

double pi = 3,14;

O boolean armazena valor verdadeiro ou falso!

boolean verdade = true;boolean mentira = false;

O tipo char guarda apenas um caractere! Você deve usar aspas simples!

char letra = 'a';

Page 44: Mini Curso Java Day(Eliane Raquel)

Nomes de VariáveisNomes de Variáveis

Podem conter caracteres, dígitos, _ e $ Devem começar com caractere, _ ou $ Não podem conter espaços Maiúsculas diferentes de minúsculas

Exemplos

nota ; x ; y ; raio ; mediaTotal media_total ; media$total ; media1 media2 ; media_1 ; media$1 nomePai ; NomePai ; nome_mãe

Page 45: Mini Curso Java Day(Eliane Raquel)

Tipos PrimitivosTipos Primitivos

Page 46: Mini Curso Java Day(Eliane Raquel)

Tipos PrimitivosTipos Primitivos

Representam valores fundamentais

Tipos:

boolean char byte short int long float double

Page 47: Mini Curso Java Day(Eliane Raquel)

Tipo PrimitivosTipo Primitivos

Page 48: Mini Curso Java Day(Eliane Raquel)

Tipos PrimitivosTipos Primitivos

Palavra Descrição Tamanho/formatoInteiros

short Inteiro pequenoInteiroLongo

Números ReaisPonto flutuante de precisão simplesPonto flutuante de precisão dupla

Outros tiposUm caractereUm valor lógico

byte Inteiro de 1 byte 8 bits16 bits

int 32 bitslong 64 bits

float 32 bitsdouble 64 bits

char 16 bits-Unicodeboolean true ou false

Page 49: Mini Curso Java Day(Eliane Raquel)

ExemplosExemplos

int x;x = 234;byte b = 89;

boolean isPermitido = true;double d = 1235.56;boolean isAcessado;isAcessado = false;

char c = ‘R’;int z = x;float f = 72.5f;

boolean ligado;ligado = isPermitido;long big = 3456789;

Page 50: Mini Curso Java Day(Eliane Raquel)

OperadoresOperadores

Page 51: Mini Curso Java Day(Eliane Raquel)

OperadoresOperadores

Operador de Java Operador Descrição

[ ] Array índice

() Método chamada

. Membro acesso

++ Prefixo ou incremento postfix

-- Prefixo ou decrementar postfix

+ - Unário plus, minus

~ NÃO bitwise

! Booleano (lógico) NÃO

new Objeto criação

* / % Multiplicação, divisão, resto

+ - Adição, subtração

+ Seqüência concatenação

<< Assinado bit shift esquerda para a direita

>> Assinado bit shift direita para a esquerda

>>> Unsigned bit shift direita para a esquerda

Operador de Java Operador Descrição

< <= Inferior, igual ou inferior a

> >= Superior, superior ou igual a

instanceof Referência teste

== Igual a

!= Não é igual a

& Bitwise AND

& Booleano (lógico) E

^ Bitwise XOR

^ Booleano (lógico) XOR

| Bitwise OR

| Booleano (lógico) OU

&& Booleano (lógico) E

|| Booleano (lógico) OU

? : Condicional

= Atribuição

Page 52: Mini Curso Java Day(Eliane Raquel)

Estruturas de Controle de FluxoEstruturas de Controle de Fluxo

Page 53: Mini Curso Java Day(Eliane Raquel)

Estruturas de Controle de FluxoEstruturas de Controle de Fluxo

Executa blocos de código delimitados por chaves {...}

Page 54: Mini Curso Java Day(Eliane Raquel)

Estruturas de Controle de FluxoEstruturas de Controle de Fluxo

if

if/else

while

do

for

switch

Page 55: Mini Curso Java Day(Eliane Raquel)

ifif

CondicaoBooleanaCondicaoBooleana é uma expressão Que retorna true ou false. Você pode usar os operadores <, >, <=, >= e outros.

if (condicaoBooleanacondicaoBooleana) { instruções;}

int idade = 15;if (idade < 18idade < 18) { System.out.println("Não pode entrar");}

Exemplos:

String nome = “Raquel”;If (nome.equals(“Eliane”)){ System.out.println(“O nome é Eliane”);}

Sintaxe:

Page 56: Mini Curso Java Day(Eliane Raquel)

If / elseIf / else

Indica o comportamento que deve ser executado no caso da expressão booleana ser falsa!

if (condicaoBooleanacondicaoBooleana) { instruções;} else if (condicaoBooleanacondicaoBooleana) { instruções;} else { instruções;}

int idade = 15;ifif (idade < 18) { System.out.println("Não pode entrar");}elseelse { System.out.println("Pode entrar");}

Exemplo:

Sintaxe:

Page 57: Mini Curso Java Day(Eliane Raquel)

WhileWhile

Comando usado para fazer um laço(loop).

while (condição) {} comando;

int idade = 15;while(idade < 18) { System.out.println(idade); idade = idade + 1;}

Exemplo:

Sintaxe:

Page 58: Mini Curso Java Day(Eliane Raquel)

forfor

for (inicializacao; condicao; incremento) { codigo;}

Sintaxe:

int soma = 0;for (int i = 0 ; i < 10 ; i++)

f

soma+=i;System.out.println(“A soma é “+soma);

Page 59: Mini Curso Java Day(Eliane Raquel)

forfor

Page 60: Mini Curso Java Day(Eliane Raquel)

switchswitch

switch(letra)

s

{ case 'A' : System.out.println("A"); break; case 'B' : System.out.println("B"); break; default: System.out.println("?");}

switch(seletor_inteiro)

s

{ case valor_inteiro_1 : instruções; break; case valor_inteiro_2 : instruções; break; default: instruções; }

Page 61: Mini Curso Java Day(Eliane Raquel)

Controle de loop – break e Controle de loop – break e continuecontinue

Page 62: Mini Curso Java Day(Eliane Raquel)

Palavras ReservadasPalavras Reservadas

Page 63: Mini Curso Java Day(Eliane Raquel)

Palavras reservadas no JavaPalavras reservadas no Java

Page 64: Mini Curso Java Day(Eliane Raquel)

Orientação a ObjetosOrientação a Objetos

Page 65: Mini Curso Java Day(Eliane Raquel)

Porque OO ??Porque OO ??

Sistemas são complexos Muito difícil um único indivíduo entender todo o sistema. Podemos gerenciar a complexidade, não podemos eliminá-la. É necessário pensar na evolução do sistema

Page 66: Mini Curso Java Day(Eliane Raquel)

Porque OO ??Porque OO ??

Modelagem OO O ser humano conhece o mundo e gerencia sua complexidade através de objetos É como desenvolvemos nossa cognição.Desenvolvemos o conceito de OBJETOOBJETO

Exemplos de objetosbola, carro, camisa, luz, casa, calça,

música, conta bancária, poema, etc

Page 67: Mini Curso Java Day(Eliane Raquel)

ObjetosObjetos

Abstrações de dados do mundo real;Possuem: Características(Atributos); Comportamento(Métodos).

Objeto Características

ComportamentoPessoa Nome, idade Falar, andar

Cachorro Nome, raça Latir, correr

Conta Bancaria Saldo, agência Creditar, DebitarCarro Cor, marca Acelerar, frear

Page 68: Mini Curso Java Day(Eliane Raquel)

Classe e objetosClasse e objetos

Classe Classe é onde conceituamos o objeto É a essência do objeto Define os atributosatributos e métodosmétodos

Objeto Objeto é uma instânciainstância de uma classe Objetos semelhantes pertencem a mesma classe

Page 69: Mini Curso Java Day(Eliane Raquel)

“Pode parecer óbvio, mas a dificuldade inicial do paradigma da orientação a

objetos é justo saber distinguir o que é classe e o que é objeto.

É comum o iniciante utilizar, obviamente de forma errada, essas duas palavras

como sinônimos.”

Page 70: Mini Curso Java Day(Eliane Raquel)

ObjetoQualquer entidade que possui características e comportamento

ClasseDescreve um tipo de objeto Define atributos e métodos

AtributoDefine características do objeto

MétodoOperações que o objeto pode realizar

Page 71: Mini Curso Java Day(Eliane Raquel)

Criando um tipoCriando um tipo

Considere um programa para um Banco

Uma entidade importante é a conta

Toda conta tem:

número, nome do cliente, saldo, limite

Toda conta faz ou o que gostaríamos de “pedir a conta”:

sacar, depositar, imprimir o nome do dono da conta, ver o saldo atual, transferir dinheiro

Page 72: Mini Curso Java Day(Eliane Raquel)

Criando um tipoCriando um tipo

O projeto da conta, isto é, a definição da conta, é a classeclasse.

O que podemos construir a partir dessa classe, as contas de verdade, são os objetosobjetos.

Mas para acessar todos esses dados, precisamos construir uma conta, ou melhor, criar uma instânciainstância da classe.

Page 73: Mini Curso Java Day(Eliane Raquel)

Classes e Objetos em JavaClasses e Objetos em Java

Page 74: Mini Curso Java Day(Eliane Raquel)

class Conta { int numero; String nome; double saldo; double limite; // ..}

AtributosAtributoscaracterísticas do objeto

MétodosMétodosOperações que oobjeto pode realizar

class Conta { // ..atributos void sacar(double quantia){..} boolean depositar(double quantia, Conta conta){..}}

Page 75: Mini Curso Java Day(Eliane Raquel)

Classe em JavaClasse em Java

class nomeClasse{ //Atributos //Métodos}

Sintaxe Básica:

Classe = Atributos + Métodos1 classe => 1 arquivo

Page 76: Mini Curso Java Day(Eliane Raquel)

Criando e usando um objetoCriando e usando um objeto

Para criar (construir, instanciar) uma Conta, basta usar a palavra chave newnew ...

Para acessar o objeto é preciso referenciar esse objeto. É necessário uma variável!

Conta minhaConta; minhaConta = new Conta();

Page 77: Mini Curso Java Day(Eliane Raquel)

Criando e usando um objetoCriando e usando um objeto

Agora, podemos acessar o objeto recém criado para alterar seu nome, seusaldo etc:

Conta minhaConta; minhaConta = new Conta();

minhaConta.nome = "Duke"; minhaConta.saldo = 1000.0;

System.out.println("Saldo atual: " + minhaConta.saldo);

Agora, minhaConta pertence ao Duke, e tem saldo de mil reais.

Page 78: Mini Curso Java Day(Eliane Raquel)

MétodosMétodos

Page 79: Mini Curso Java Day(Eliane Raquel)

MétodosMétodos

De que maneira uma que uma conta saca dinheiro?

Os métodos representam o que cada conta faz e como isso é feito – os seus comportamentos

Page 80: Mini Curso Java Day(Eliane Raquel)

MétodosMétodos

void sacar(double quantidade) { double novoSaldo = this.saldo - quantidade; this.saldo = novoSaldo;}

void = nenhuma informação de retorno

Quanto você quer sacar? Esse valor é o parâmetro do método que está entre parênteses. Essa variável é temporária, ou seja, local.

this mostra que é um atributo (é opcional)

t

Page 81: Mini Curso Java Day(Eliane Raquel)

MétodosMétodos

Para invocar o método usamos o ponto!

// saca 200 reais minhaConta.saca(200);

// deposita 500 reais minhaConta.deposita(500);

System.out.println(minhaConta.saldo);

Qual o valor do saldo impresso na tela?

Page 82: Mini Curso Java Day(Eliane Raquel)

Métodos com retornoMétodos com retorno

Retorna um valor Retorna um valor para o código que o chamou.

No método sacar podemos retornar um valor booleano indicando se a operação foi bem sucedida ou não.

boolean saca(double valor) { if (this.saldo < valor) { return false; } else { this.saldo = this.saldo - valor; return true; }}

Page 83: Mini Curso Java Day(Eliane Raquel)

Métodos com retornoMétodos com retorno

minhaConta.saldo = 1000;boolean consegui = minhaConta.saca(2000);if(consegui){ System.out.println("Consegui sacar");}else{ System.out.println("Não consegui sacar");}

Page 84: Mini Curso Java Day(Eliane Raquel)

Array (Vetor)Array (Vetor)

Page 85: Mini Curso Java Day(Eliane Raquel)

São objetos que armazenam diversas variáveis do mesmo tipo;

Cada item em um array é chamado de elemento, e cada elemento é acessado pela posição numérica.

Page 86: Mini Curso Java Day(Eliane Raquel)

ExemploExemplo

class ArrayDemo { public static void main(String[] args) { int[] meuArray; // declara um array de inteiros meuArray = new int[10]; // aloca a memória para 10

inteiros meuArray[0] = 100; // inicializa o primeiro elemento

meuArray[1] = 200; // inicializa o segundo elemento meuArray[2] = 300; // etc. meuArray[3] = 400; meuArray[4] = 500; meuArray[5] = 600; meuArray[6] = 700; meuArray[7] = 800; meuArray[8] = 900; meuArray[9] = 1000;

Page 87: Mini Curso Java Day(Eliane Raquel)

...continuação do exemplo...continuação do exemplo

System.out.println("Elemento na posicao 0: " + meuArray[0]);          System.out.println("Elemento na posicao 1: " + meuArray[1]);          System.out.println("Elemento na posicao 2: " + meuArray[2]);          System.out.println("Elemento na posicao 3: " + meuArray[3]);          System.out.println("Elemento na posicao 4: " + meuArray[4]);          System.out.println("Elemento na posicao 5: " + meuArray[5]);          System.out.println("Elemento na posicao 6: " + meuArray[6]);          System.out.println("Elemento na posicao 7: " + meuArray[7]);          System.out.println("Elemento na posicao 8: " + meuArray[8]);          System.out.println("Elemento na posicao 9: " + meuArray[9]);     }}

Page 88: Mini Curso Java Day(Eliane Raquel)

... A saída desse programa é:... A saída desse programa é:

Elemento na posição 0: 100Elemento na posição 1: 200Elemento na posição 2: 300Elemento na posição 3: 400Elemento na posição 4: 500Elemento na posição 5: 600Elemento na posição 6: 700Elemento na posição 7: 800Elemento na posição 8: 900Elemento na posição 9: 1000

Page 89: Mini Curso Java Day(Eliane Raquel)

Declarando um arrayDeclarando um array

O programa declarou meuArray com a seguinte linha de código:

int[] meuArray; // declara um array de inteiros

Você também pode colocar os colchetes após o nome do array:

float meuArrayDeFloats[]; //forma menos utilizada

◦ Essa forma é menos utilizada, pois com os colchetes antes do nome do array fica mais fácil entender de que se trata de um array.

Page 90: Mini Curso Java Day(Eliane Raquel)

ArrayArray

Do mesmo modo você pode declarar arrays de outros tipos:

byte[] meuArrayDeBytes;short[] meuArrayDeShorts;long[] meuArrayDeLongs;float[] meuArrayDeFloats;double[] meuArrayDeDoubles;boolean[] meuArrayDeBooleans;char[] meuArrayDeChars;String[] meuArrayDeStrings;

Page 91: Mini Curso Java Day(Eliane Raquel)

Criando, Inicializando e Acessando Criando, Inicializando e Acessando um Arrayum Array

Criar◦ Utilizando o operador new;meuArray = new int[10]; // cria um array de inteiros

As próximas linhas atribuem valores para cada elemento do array:

meuArray[0] = 100; // inicializa o primeiro elementomeuArray[1] = 200; // inicializa o segundo elementomeuArray[2] = 300; // etc.

Page 92: Mini Curso Java Day(Eliane Raquel)

ContinuaçãoContinuação

Cada elemento do array é acessado por seu índice numérico:

System.out.println("Elemento na posicao 0: " + meuArray[0]);

System.out.println("Elemento na posicao 1: " + meuArray[1]);

System.out.println("Elemento na posicao 2: " + meuArray[2]);

Page 93: Mini Curso Java Day(Eliane Raquel)

...ou...ou

Alternativamente, você pode usar atalhos de sintaxe para criar e inicializar um array: int[] meuArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};

o tamanho do array é determinado pelo número de valores informados entre {e}.

Page 94: Mini Curso Java Day(Eliane Raquel)

Modificadores de Acesso e Modificadores de Acesso e EncapsulamentoEncapsulamento

Page 95: Mini Curso Java Day(Eliane Raquel)

Encapsulamento refere-se ao isolamento entre as partes do programa.

◦ Private;◦ Protected;◦ Public;◦ Static;◦ Abstract;◦ Final.

Page 96: Mini Curso Java Day(Eliane Raquel)

Getters e SettersGetters e Setters

Getters: Método que retorna o atributoget[nome do atributo].

Ex: getIdade(), getSalario().

Setters: Método que atribui/modifica o valor de um atributo

set[nome do atributo] Ex: setIdade(Integer idade),

setSalario(Double salario).

Page 97: Mini Curso Java Day(Eliane Raquel)

Herança, Reescrita e Herança, Reescrita e PolimordismoPolimordismo

Page 98: Mini Curso Java Day(Eliane Raquel)

HerançaHerança

Page 99: Mini Curso Java Day(Eliane Raquel)

ReescritaReescrita

Conceito;Diferença.

Page 100: Mini Curso Java Day(Eliane Raquel)

PolimorfismoPolimorfismo

Conceito;Exemplos.

Page 101: Mini Curso Java Day(Eliane Raquel)

Classes Abstratas Classes Abstratas

Page 102: Mini Curso Java Day(Eliane Raquel)

Classe abstrataClasse abstrata

Não podem ser instanciadas;Não pode utilizar operador new.

Criada para Herança e Polimorfismo;Palavra chave: abstract.

public abstract class Animal { public void roam() { }}

public abstract class Canine extends Animal { public void roam() {implementação }}

Page 103: Mini Curso Java Day(Eliane Raquel)

InterfaceInterface

Page 104: Mini Curso Java Day(Eliane Raquel)

Classe abstrataClasse abstrata

Não podem ser instanciadas;Não pode utilizar operador new.

Criada para Herança e Polimorfismo;Palavra chave: abstract.

public abstract class Animal { public void roam() { }}

public abstract class Canine extends Animal { public void roam() {implementação }}

Page 105: Mini Curso Java Day(Eliane Raquel)

InterfaceInterface

É como uma classe abstrata, mas só tem: Métodos abstratos, públicos Campos finais estáticos, públicos

Na prática representa: Um comportamento compartilhado por várias classes onde cada classe deve implementar os métodos da interface Uma alternativa à herança múltipla

public interface Pet { ... }class Dog implements Pet { ... }

Page 106: Mini Curso Java Day(Eliane Raquel)

InterfaceInterface

Define um contratocontrato a ser cumprido!

Todos os métodos são:Públicosabstratos

Todos os atributos são: públicos estáticos finais

Classe deve implementar TODOS os métodos definidos na interface.

Ao implementar uma interface a classe está assinando um contrato definido

Page 107: Mini Curso Java Day(Eliane Raquel)

InterfaceInterface

public class Dog extends Canine implements Pet { public void beFriendly(){ ... } public void play(){ ... } public void roam(){ ... } public void eat(){ ... }}

public interface Pet { public abstract void beFriendly(); public abstract void play();}

Page 108: Mini Curso Java Day(Eliane Raquel)

Exercitando o que já vimos...Exercitando o que já vimos...

Page 109: Mini Curso Java Day(Eliane Raquel)

Diagrama UMLDiagrama UML

Page 110: Mini Curso Java Day(Eliane Raquel)

Quero saber mais....Quero saber mais....Como faço???Como faço???

Page 111: Mini Curso Java Day(Eliane Raquel)

Quero saber mais !!Quero saber mais !!

Não se esqueça - o google é seu amigo ;)Participe das listas de discussão, blogs,

fóruns .. Interaja !!!Existem bons livros na área.Dicas:

◦ GUJ - www.guj.com.br/◦ JavaRN - javarn.dev.java.net/