Programação Orientada a Objetos
Engenharia da Computação
Professor: Rosalvo Ferreira de Oliveira Neto
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
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
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
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
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
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
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.
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
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)
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
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
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
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
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
}
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)
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
}
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
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;
}
}
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.
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;
}
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;
}
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;
}
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.
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.
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.
Dúvidas
Top Related