Linguagem Orientada a
Objetos
Revisão
Mario Jorge Pereira
mariojp@gmail.com
Orientação a Objetos / Java
Ambiente
Java
Orientação
a Objetos
Tipos e
Modificadores
Fluxo de
Controle
Arrays
Tratamento
de Erro
Aplicações
Console
Interface
javax.swing
Interface
Eventos
Aplicações
Desktop
Ambiente Java
JDK
JRE
Maquina Virtual Java (JVM)
Coleta de Lixo
Segurança do Código
Orientação a Objetos
Características:
Encapsulamento
Ocultar elementos da implementação de uma classe, porém
fornecendo uma interface publica para acesso.
Herança
Extensão
Acrescenta novos métodos aos já herdados
Sobreposição
Redefine os métodos implementados previamente
Polimorfismo
Comportamentos diferentes para mesma mensagem a
depender do tipo.
Palavras Chave
Tipos Primitivos
Wrapper
String texto = "12.0";
int numero = Integer.parseInt(texto);
Método:
Integer.valueOf(String s) : int
Integer.parseInt(String s) : Integer
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 objetos
O programa OO são objetos se comunicando através de
mensagens uns com os outros
Os objeto possuem um tipo que descreve seus dados
Objetos de tipos iguais podem receber as mesmas
mensagens
Classes e Objetos
Classes
Classes são uma especificação para objetos
Uma 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 representam
Classes definem lógica estática
Classes não existem no contexto da execução
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>]
}
}
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;
}
}
Fluxos de Controle
if (expressão boleana) {
instruções;
} else {
instruções;
}
for (inicializa; expressão booleana; altera) {
instruções;
}
Resumo
Classe
Definição (código fonte) de um objeto (instancia)
Objeto
Uma instancia de uma classe. Um objeto.
Atributo
Um elemento dados de um objeto. Variável de instancia.
Método
Um elemento de comportamento de um objeto. Um
procedimento.
Construtor
“Similar a um método” usado para inicializar um novo objeto
Pacote
Agrupamento de Classes e/ou subpacotes
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)
};
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;
}
Exercício
1. Escreva uma classe Ponto
contém x e y e que podem ser definidos em construtor
Sobrescreva o metodo toString para retornar o x e o y
2. Escreva uma classe Circulo, que contenha
raio inteiro e origem do tipo Ponto
Dois construtores que define origem e raio
Circulo(int x,int y, int raio)
Cirtulo(Ponto ponto, int raio)
método que retorna a área
método que retorna a circunferência
use java.lang.Math.PI (Math.PI)
Sobrescreva o metodo toString para retornar o raio e a
origem
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);
}
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()
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());
}
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

Revisão Sobre Programação Orientada a Objetos com Java

  • 1.
    Linguagem Orientada a Objetos Revisão MarioJorge Pereira mariojp@gmail.com
  • 2.
    Orientação a Objetos/ Java Ambiente Java Orientação a Objetos Tipos e Modificadores Fluxo de Controle Arrays Tratamento de Erro Aplicações Console Interface javax.swing Interface Eventos Aplicações Desktop
  • 3.
    Ambiente Java JDK JRE Maquina VirtualJava (JVM) Coleta de Lixo Segurança do Código
  • 4.
    Orientação a Objetos Características: Encapsulamento Ocultarelementos da implementação de uma classe, porém fornecendo uma interface publica para acesso. Herança Extensão Acrescenta novos métodos aos já herdados Sobreposição Redefine os métodos implementados previamente Polimorfismo Comportamentos diferentes para mesma mensagem a depender do tipo.
  • 5.
  • 6.
  • 7.
    Wrapper String texto ="12.0"; int numero = Integer.parseInt(texto); Método: Integer.valueOf(String s) : int Integer.parseInt(String s) : Integer
  • 8.
    Objetos Objetos são conceitosque 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 objetos O programa OO são objetos se comunicando através de mensagens uns com os outros Os objeto possuem um tipo que descreve seus dados Objetos de tipos iguais podem receber as mesmas mensagens
  • 9.
  • 10.
    Classes Classes são umaespecificação para objetos Uma 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 representam Classes definem lógica estática Classes não existem no contexto da execução
  • 11.
    Declaração de Classesem Java [<declaracaoPacote>] [<declaracaoImport>] <modificadores> class <NomeClasse> { [<modificadores>] <tipo> <nome> = [<valorInicial>]; [<modificador>] <NomeClasse> ([<listaArgumentos>]) { [<instruções>] } [<modificadores>] <tipoRetorno> <nome> ([<listaArgumentos>]) { [<instruções>] } }
  • 12.
    Declaração de Classesem 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; } }
  • 13.
    Fluxos de Controle if(expressão boleana) { instruções; } else { instruções; } for (inicializa; expressão booleana; altera) { instruções; }
  • 14.
    Resumo Classe Definição (código fonte)de um objeto (instancia) Objeto Uma instancia de uma classe. Um objeto. Atributo Um elemento dados de um objeto. Variável de instancia. Método Um elemento de comportamento de um objeto. Um procedimento. Construtor “Similar a um método” usado para inicializar um novo objeto Pacote Agrupamento de Classes e/ou subpacotes
  • 15.
    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) };
  • 16.
    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; }
  • 17.
    Exercício 1. Escreva umaclasse Ponto contém x e y e que podem ser definidos em construtor Sobrescreva o metodo toString para retornar o x e o y 2. Escreva uma classe Circulo, que contenha raio inteiro e origem do tipo Ponto Dois construtores que define origem e raio Circulo(int x,int y, int raio) Cirtulo(Ponto ponto, int raio) método que retorna a área método que retorna a circunferência use java.lang.Math.PI (Math.PI) Sobrescreva o metodo toString para retornar o raio e a origem
  • 18.
    Exercício 3. Escreva umaclasse 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); }
  • 19.
    Exercício 4. Crie umaclasse 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()
  • 20.
    Exercício 7. Escreva umaclasse 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()); }
  • 21.
    Formas de percorreruma 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