Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de...
Transcript of Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de...
![Page 1: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/1.jpg)
![Page 2: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/2.jpg)
Programação Orientada a Objetos
Engenharia da Computação
Professor: Rosalvo Ferreira de Oliveira Neto
![Page 3: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/3.jpg)
Dados Pessoais
Rosalvo Ferreira de Oliveira Neto
• MSc. em ciência da computação (UFPE)
• www.univasf.edu.br/~rosalvo.oliveira
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto 3
![Page 4: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/4.jpg)
Tópicos
•Introdução a JAVA
•Campos
•Construtores
•Parâmetros
•Métodos (métodos de acesso, modificadores)
•Atribuição e instrução condicional
•Exemplos
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
![Page 5: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/5.jpg)
Compilação-Interpretação
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Arquivo.java
javac
Arquivo.class (bytecode)
JVM – Java Virtual Machine
Execução interpretada
![Page 6: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/6.jpg)
Java é Simples
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Sintaxe familiar a vários programadores (baseada em C e C++)
•A linguagem é mais "limpa"
•Elimina várias redundâncias de C++
•Não é necessário destruir objetos
•Simples para muitas aplicações, desde que se conheça algumas APIs
![Page 7: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/7.jpg)
Java é Orientada a Objetos
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Totalmente orientada a objetos
•Objetos e classes
•Encapsulamento de dados e operações
•Herança e Subtipos
•Polimorfismo
•Criação e remoção dinâmica de objetos
•Exceções
![Page 8: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/8.jpg)
Java é Portável
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Redução de custos com migração, instalação, treinamento, etc.
•Algumas vezes ainda é necessário depurar programas antes de migrar para outra plataforma
•Java tem se tornado cada vez mais portável: aplicações desenvolvidas e testadas uma única vez têm rodado em dezenas de plataformas sem alteração
![Page 9: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/9.jpg)
Java é Distribuída
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Objetos distribuídos com RMI, CORBA e EJB
•Oferece suporte de alto nível para acesso à Internet/Web (pacote java.net)
•Suporte para acesso a arquivos remotos, banco de dados, etc.
![Page 10: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/10.jpg)
Java é Robusta
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Ausência de ponteiros
•Fortemente tipada
•Coleta de lixo automática (garbage collection)
•Exceções tipadas
•Variáveis (member variables) são inicializadas automaticamente
![Page 11: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/11.jpg)
Java é Concorrente
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Facilidade em criar aplicações com concorrência
•Métodos sincronizados
•Monitores (construções essenciais para a concorrência)
![Page 12: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/12.jpg)
Java possui Segurança
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Preservação dos limites do array
•Checksum dos bytecodes antes da execução
•Restrições de segurança na JVM
•Restrições de execução na Internet
![Page 13: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/13.jpg)
Plataformas e versões de Java
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
J2ME
J2SE
J2EE
Micro Edition
Standard Edition
Enterprise Edition
Palms
Celulares
Dispositivos inteligentes
Aplicações convencionais
Aplicações Web
Aplicações Distribuídas
Aplicações Transacionais
![Page 14: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/14.jpg)
A plataforma Java
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
•Java Virtual Machine (JVM)
•Componente da plataforma Java que assegura a independência das aplicações entre diferentes plataformas
•É uma espécie de tradutor existente nos dispositivos para traduzir comandos da linguagem Java para a linguagem da máquina nativa.
•Plataformas compatíveis com Java
•Implementam o tradutor da linguagem Java para sua linguagem de máquina
![Page 15: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/15.jpg)
Definindo uma classe
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Public class NomedaClasse {
•Primeira parte: Campos;
•Segunda parte: Construtores;
•Terceira parte: Métodos;
}
Essa ordem não é obrigatória
![Page 16: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/16.jpg)
Campos
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Os campos armazenam dados para o uso de cada objeto.
Também são conhecidos como variáveis de instância.
Public class NomedaClasse {
private int nomeVariavel_1;
private int nomeVariavel_2;
Construtores e métodos omitidos
}
![Page 17: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/17.jpg)
Tipos Primitivos
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
boolean true ou false
char caractere (16 bits Unicode)
byte inteiro (8 bits)
short inteiro (16 bits)
int inteiro (32 bits)
long inteiro (64 bits)
float ponto flutuante (32 bits)
double ponto flutuante (64 bits)
![Page 18: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/18.jpg)
Construtores
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Os construtores permitem que cada objeto seja configurado adequadamente quando ele é criado pela primeira vez.
Public class NomedaClasse {
Public NomedaClasse(){
}
Campos e métodos omitidos
}
![Page 19: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/19.jpg)
Construtores – Exemplo – Classe Pessoa
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Public class Pessoa {
private String nome;
private int idade;
private String sexo;
Public Pessoa(){
nome = “Não informado”;
idade = -1;
sexo = “Não informado”;
}
}
Métodos omitidos
![Page 20: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/20.jpg)
Construtores – Exemplo – Classe Pessoa
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
...
Public Pessoa(String aNome, int aIdade, String aSexo){
nome = aNome;
idade = aIdade;
sexo = aSexo;
}
}
![Page 21: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/21.jpg)
Métodos
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Os métodos implementam o comportamento dos objetos.
Os métodos consistem em duas partes: um cabeçalho e um corpo.
•Métodos de acesso: Retornam informações sobre o estado de um objeto.
•Métodos modificadores: Alteram o estado de um objeto.
![Page 22: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/22.jpg)
Assinatura dos Métodos
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Visibilidade tipoDeRetorno NomeMetodo(parametros){
}
Exemplo de métodos de acesso para classe pessoa:
Public String getNome(){
return nome;
}
![Page 23: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/23.jpg)
Métodos de acesso
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Public String getNome(){
return nome;
}
Public String getIdade(){
return idade;
}
Public String getSexo(){
return Sexo;
}
![Page 24: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/24.jpg)
Métodos de Modificadores
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
public void setNome(String aNome){
nome = aNome;
}
public void setIdade(int aIdade){
idade = aIdade;
}
public void setSexo(String aSexo){
sexo = aSexo;
}
![Page 25: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/25.jpg)
Tempo de vida de um variável
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
O tempo de vida de uma variável descreve quanto tempo a variável continuará a existir antes de ser destruída.
![Page 26: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/26.jpg)
Exercício – Máquinas de vender bilhetes
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Nossas máquinas de vender bilhetes trabalham com os clientes “inserindo” dinheiro nelas e depois solicitando que o bilhete seja impresso. As máquinas mantêm uma soma total da quantia que coletam durante toda a operação.
O nome da classe deve ser TicketMachine, deve ter como atributos: price, balance e total.
![Page 27: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/27.jpg)
Exercício – Máquinas de vender bilhetes
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Melhorar a classe de máquinas de vender bilhetes com controles para verificação se o valor inserido é maior que zero. Retorna o saldo do cliente caso ele tenha pago mais dinheiro que o preço do bilhete.
![Page 28: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/28.jpg)
Dúvidas
![Page 29: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto Os campos](https://reader033.fdocuments.net/reader033/viewer/2022050508/5f98f6e8b113df5fce58e267/html5/thumbnails/29.jpg)