revisão sobre programação orientada a objetos com java

21
Linguagem Orientada a Objetos Revisão Mario Jorge Pereira [email protected]

Upload: mario-pereira

Post on 06-May-2015

1.062 views

Category:

Education


4 download

DESCRIPTION

Aula de revisão sobre Programação Orientada a Objetos com uso de Java para os exercícios e exemplos. O código esta disponível no github.

TRANSCRIPT

Page 1: Revisão Sobre Programação Orientada a Objetos com Java

Linguagem Orientada a ObjetosRevisão

Mario Jorge [email protected]

Page 2: Revisão Sobre Programação Orientada a Objetos com Java

Orientação a Objetos / Java

AmbienteJava

Orientação a Objetos

Tipos e Modificadores

Fluxo de Controle Arrays

Tratamentode Erro

AplicaçõesConsole

Interfacejavax.swing

InterfaceEventos

AplicaçõesDesktop

Page 3: Revisão Sobre Programação Orientada a Objetos com Java

Ambiente Java

JDK

JRE

Maquina Virtual Java (JVM)

Coleta de Lixo

Segurança do Código

Page 4: Revisão Sobre Programação Orientada a Objetos com Java

Orientação a Objetos

Características:

EncapsulamentoOcultar elementos da implementação de uma classe, porém

fornecendo uma interface publica para acesso.

HerançaExtensão

Acrescenta novos métodos aos já herdados

SobreposiçãoRedefine os métodos implementados previamente

PolimorfismoComportamentos diferentes para mesma mensagem a

depender do tipo.

Page 5: Revisão Sobre Programação Orientada a Objetos com Java

Palavras Chave

Page 6: Revisão Sobre Programação Orientada a Objetos com Java

Tipos Primitivos

Page 7: Revisão Sobre Programação Orientada a Objetos com Java

Wrapper

String texto = "12.0";int numero = Integer.parseInt(texto);

Método:

Integer.valueOf(String s) : intInteger.parseInt(String s) : Integer

Page 8: Revisão Sobre Programação Orientada a Objetos com Java

Objetos

Objetos são conceitos que têm identidade, estado e

comportamento

Pode-se pensar sobre o mundo real como uma coleção

de objetos relacionados

Características de OO:Um programa OO é objeto e é composto por objetosO programa OO são objetos se comunicando através de

mensagens uns com os outrosOs objeto possuem um tipo que descreve seus dadosObjetos de tipos iguais podem receber as mesmas

mensagens

Page 9: Revisão Sobre Programação Orientada a Objetos com Java

Classes e Objetos

Page 10: Revisão Sobre Programação Orientada a Objetos com Java

Classes

Classes são uma especificação para objetosUma classe define o que um objeto pode ter e o que ele

pode fazer.A diferença entre classe e objeto:

"Classe" é um gabarito (como a planta de uma casa)"Objeto" é a concretização do gabarito (casas feitas a partir

da mesma planta)Resumindo:

Classes não são os objetos que representamClasses definem lógica estáticaClasses não existem no contexto da execução

Page 11: Revisão Sobre Programação Orientada a Objetos com Java

Declaração de Classes em Java

[<declaracaoPacote>][<declaracaoImport>]<modificadores> class <NomeClasse> { [<modificadores>] <tipo> <nome> = [<valorInicial>];

[<modificador>] <NomeClasse> ([<listaArgumentos>]){

[<instruções>] } [<modificadores>] <tipoRetorno> <nome> ([<listaArgumentos>]) {

[<instruções>]

}

}

Page 12: Revisão Sobre Programação Orientada a Objetos com Java

Declaração de Classes em Java

package br.com.mariojp.veiculo;public class Carro { private double cargaMaxima = 50.5; private double cargaAtual; public Caro(){ cargaAtual = 10.5; } public double getCargaAtual(){ return cargaAtual; } public void setCarga(double peso){ cargaAtual = peso; }

}

Page 13: Revisão Sobre Programação Orientada a Objetos com Java

Fluxos de Controle

if (expressão boleana) { instruções;} else { instruções;}

for (inicializa; expressão booleana; altera) {instruções;

}

Page 14: Revisão Sobre Programação Orientada a Objetos com Java

Resumo

Classe Definição (código fonte) de um objeto (instancia)

ObjetoUma instancia de uma classe. Um objeto.

AtributoUm elemento dados de um objeto. Variável de instancia.

MétodoUm elemento de comportamento de um objeto. Um

procedimento. Construtor

“Similar a um método” usado para inicializar um novo objetoPacote

Agrupamento de Classes e/ou subpacotes

Page 15: Revisão Sobre Programação Orientada a Objetos com Java

Array

String names[];names = new String[3];names[0] = "Georgianna";names[1] = "Jen";names[2] = "Simon";

String names[] = {"Georgianna","Jen","Simon"};

Data data[];datas = new Data[3];dates[0] = new Data(22, 7, 1964);

dates[1] = new Data(1, 1, 2000);

dates[2] = new Data(22, 12, 1964);

Data dates[] = {new Data(22, 7, 1964),new Data(1, 1, 2000),new Data(22, 12, 1964)};

Page 16: Revisão Sobre Programação Orientada a Objetos com Java

Tratamento de Erros

try {instruções onde pode ocorrer uma Exceção;

} catch (Tipo de Exceção instancia_erro) {instruções caso ocorra a Exceção;

} finally {instruções que vão ocorrer sempre;

}

declaracaoMetodo throws tipo Exceção{ instruções onde pode ocorrer uma Exceção;}

Page 17: Revisão Sobre Programação Orientada a Objetos com Java

Exercício

1. Escreva uma classe Pontocontém x e y e que podem ser definidos em construtorSobrescreva o metodo toString para retornar o x e o y

2. Escreva uma classe Circulo, que contenharaio inteiro e origem do tipo PontoDois construtores que define origem e raio

Circulo(int x,int y, int raio)

Cirtulo(Ponto ponto, int raio)

método que retorna a áreamétodo que retorna a circunferênciause java.lang.Math.PI (Math.PI)Sobrescreva o metodo toString para retornar o raio e a

origem

Page 18: Revisão Sobre Programação Orientada a Objetos com Java

Exercício

3. Escreva uma classe Teste com seguinte main:Ponto p1 = new Ponto(2,5);Circulo cir1 = new Circulo(p1,4);Circulo[] circulos = new Circulo[5];circulos[0] = cir1;circulos[1] = new Circulo(new Ponto(1,2),5);circulos[2] = new Circulo(3,4,5);circulos[3] = new Circulo(1,1,6);circulos[4] = new Circulo(5,5,6);for( Circulo c : circulos ) { System.out.println(c);}

Page 19: Revisão Sobre Programação Orientada a Objetos com Java

Exercício

4. Crie uma classe abstrata Figura que:- contém o atributo String cor e por padrão a cor “branco”- crie um método abstrato string desenhar()

5. Altere a classe Circulo para ela herdar de Figura- Faça as alterações necessárias- Implemente o método desenhar() retornando o nome

da figura e a cor. - Implemente um construtor Circulo(String cor)

6. Crie uma classe Quadrado que herda de Figura e implemente o método desenhar().-Implemente o construtor Quadrado(String cor)-Implemente o construtor Quadrado()

Page 20: Revisão Sobre Programação Orientada a Objetos com Java

Exercício

7. Escreva uma classe Teste com seguinte main:Figura[] figuras = new Figura[5];figuras[0] = new Quadrado(“Verde”);figuras[1] = new Circulo(“amarelo”);figuras[2] = new Circulo();figuras[3] = new Quadrado(“azul”);figuras[4] = new Circulo(“preto”);

for( Figura f : figuras ) { System.out.println(f.desenhar());}

Page 21: Revisão Sobre Programação Orientada a Objetos com Java

Formas de percorrer uma Coleção

for(Iterator it = <colecao>.iterator() ;it.hasNext() ; ){ <Tipo> <referencia> (<Tipo>) it.next();

}

Iterator it = <colecao>.iterator();while (it.hasNext()){<Tipo> <referencia> (<Tipo>) it.next();

}

for( <Tipo> <referencia> : <coleção> ) { usar a <referencia>;} //JAVA 1.5