Java é Orientada a Objetos

Propaganda
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)
•
•
[email protected]
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
Arquivo.java
javac
Arquivo.class (bytecode)
JVM – Java Virtual Machine
Execução interpretada
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java é Simples
•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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java é Orientada a Objetos
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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java é Portável
•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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java é Distribuída
•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.
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java é Robusta
•Ausência de ponteiros
•Fortemente tipada
•Coleta de lixo automática (garbage collection)
•Exceções tipadas
•Variáveis (member variables) são inicializadas
automaticamente
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java é Concorrente
•Facilidade em criar aplicações com concorrência
•Métodos sincronizados
•Monitores (construções essenciais para a
concorrência)
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Java possui Segurança
•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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Plataformas e versões de Java
J2ME
Micro Edition
Palms
Celulares
Dispositivos inteligentes
J2SE
J2EE
Standard Edition
Aplicações convencionais
Aplicações Web
Enterprise Edition
Aplicações Distribuídas
Aplicações Transacionais
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
A plataforma Java
•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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Definindo uma classe
Public class NomedaClasse {
•Primeira parte: Campos;
•Segunda parte: Construtores;
•Terceira parte: Métodos;
}
Essa ordem não é obrigatória
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Campos
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
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Tipos Primitivos
boolean
char
byte
short
int
long
float
double
true ou false
caractere (16 bits Unicode)
inteiro (8 bits)
inteiro (16 bits)
inteiro (32 bits)
inteiro (64 bits)
ponto flutuante (32 bits)
ponto flutuante (64 bits)
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Construtores
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
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Construtores – Exemplo – Classe Pessoa
Public class Pessoa {
private String nome;
private int idade;
private String sexo;
Métodos omitidos
Public Pessoa(){
nome = “Não informado”;
idade = -1;
sexo = “Não informado”;
}
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Construtores – Exemplo – Classe Pessoa
...
Public Pessoa(String aNome, int aIdade, String aSexo){
nome = aNome;
idade = aIdade;
sexo = aSexo;
}
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Métodos
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.
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Assinatura dos Métodos
Visibilidade tipoDeRetorno NomeMetodo(parametros){
}
Exemplo de métodos de acesso para classe pessoa:
Public String getNome(){
return nome;
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Métodos de acesso
Public String getNome(){
return nome;
}
Public String getIdade(){
return idade;
}
Public String getSexo(){
return Sexo;
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Métodos de Modificadores
public void setNome(String aNome){
nome = aNome;
}
public void setIdade(int aIdade){
idade = aIdade;
}
public void setSexo(String aSexo){
sexo = aSexo;
}
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Tempo de vida de um variável
O tempo de vida de uma variável descreve quanto tempo a
variável continuará a existir antes de ser destruída.
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Exercício – Máquinas de vender bilhetes
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.
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Exercício – Máquinas de vender bilhetes
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.
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Dúvidas
Download