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) rosalvo.oliveira@univasf.edu.br www.univasf.edu.br/~rosalvo.oliveira 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
Compilação-Interpretação Arquivo.java javac Arquivo.class (bytecode) JVM Java Virtual Machine Execução interpretada
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
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
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
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.
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
Java é Concorrente Facilidade em criar aplicações com concorrência Métodos sincronizados Monitores (construções essenciais para a concorrência)
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
Plataformas e versões de Java J2ME Micro Edition Palms Celulares Dispositivos inteligentes J2SE Standard Edition Aplicações convencionais J2EE Enterprise Edition Aplicações Web Aplicações Distribuídas Aplicações Transacionais
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
Definindo uma classe Public class NomedaClasse { Primeira parte: Campos; Segunda parte: Construtores; Terceira parte: Métodos; Essa ordem não é obrigatória
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
Tipos Primitivos 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 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 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... Public Pessoa(String anome, int aidade, String asexo){ nome = anome; idade = aidade; sexo = asexo;
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.
Assinatura dos Métodos Visibilidade tipoderetorno NomeMetodo(parametros){ Exemplo de métodos de acesso para classe pessoa: Public String getnome(){ return nome;
Métodos de acesso Public String getnome(){ return nome; Public String getidade(){ return idade; Public String getsexo(){ return Sexo;
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;
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.
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.
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.
Dúvidas