FBV - Linguagem de Programação II Um pouco sobre Java
História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base no C++ Não obteve sucesso 1995: Com o advento da web, Oak foi adaptada e passou a se chamar Java
História Versão atual: 1.6 ( Java 6 ) Lançada em 2006 Poucas mudanças de codificação em relação à java 1.5 http://br.sun.com/
Estatísticas Ofertas de emprego Buscas na web
Estatísticas Dólares / clique Livros disponíveis
Introdução Compilada e interpretada Código intermediário: Bytecode Independente de plataforma Interpretador: Máquina Virtual Bytecode Máquina Virtual
Máquina Virtual Java Virtual Machine (JVM) Interpreta o bytecode Mais do que um simples interpretador Gerencia memória, threads, pilha de execução, etc. Específica para cada Sistema Operacional Write once, run anywhere
Máquina Virtual Java Virtual Machine (JVM)
Plataforma Java Composta por: Java virtual Machine (JVM) Java Application Programming Interface (Java API) Coleção de componentes prontos (manipulação de arquivos, gráficos, etc.)
Java Edições J2ME (dispositivos portáteis) J2SE (computadores pessoais) J2EE (servidores)
FBV - Linguagem de Programação II Java e OO
Introdução Java é orientada a objetos, mas pode ser utilizada apenas de forma procedural
Classes Classes definem uma estrutura de dados não ordenada Podem conter componentes em qualquer ordem Componentes de uma classe: Procedimentos de inicialização Componentes estáticos (ou de classe) Componentes de instância
Classes Procedimentos de inicialização Utilizados para inicializar objetos Componentes estáticos Podem ser utilizados a partir da classe sem a necessidade de instanciá-la Não se replicam quando novos objetos são criados
Classes Componentes de instância Cada objeto, ao ser criado, aloca espaço para eles Só podem ser usados através dos objetos
Classes Exemplo Especificação da Classe Classe em Java Conta Número Nome Saldo Limite Atributos de Instância String é uma classe Java que guarda uma sequência de caracteres.
Criando um novo objeto new Conta(); numero = 0 nome = null saldo = 0.0 limite = 0.0 Classe Objeto
Criando um novo objeto Código Java O objeto foi criado mas não existe referência para ele!
Criando um novo objeto NomeClasse nomeobj = new NomeClasse(); Código Java Desta forma, o objeto possui uma referência!
A referência ao objeto é armazenada na pilha O objeto em si fica armazenado no Heap Na pilha ficam as referências aos objetos e as variáveis unidimensionais
Cuidado com as referências!
Atributos (de instância) Definem o estado atual de um objeto Cada objeto poderá armazenar valores diferentes em seus atributos O atributo de um objeto pode ser outro Objeto
Acessando atributos (de instância) O acesso aos atributos de uma classe é feito através da variável que faz referência ao objeto seguida de. Exemplo
Atributos As variáveis do tipo atributo, diferentemente das variáveis temporárias (declaradas dentro de um método), recebem um valor padrão quando o objeto é criado Números recebem valor 0 (zero) Booleanos recebem valor false
Atributos O programador pode atribuir valores default
Atributos Os atributos também podem ser referências para outras classes
Atributos Exemplo Erro: NullPointerException! Por quê?
Atributos O new não tem efeito cascata! Possíveis soluções:
Métodos (de instância) Definem o comportamento do objeto Determinam o que o objeto é capaz de fazer Só podem ser chamados a partir de um objeto
Métodos Sintaxe básica [mod]*: zero ou mais modificadores de acesso tipo: tipo de dados retornado pelo método identificador: nome do método [tipo arg]*: zero ou mais argumentos, separados por vírgula [throws exceção*]: declaração das exceções
Métodos Exemplo Tipo de retorno. void = sem retorno Argumento Identificador
Solicitando a execução de um método Para mandar uma mensagem ao objeto para que ele execute um método também se usa o. nomeobj.identificadormetodo(argumentos); A solicitação é conhecia como invocação de método
Invocando métodos Exemplo
Exercício Escrever a classe Funcionario
Métodos com retorno O tipo de retorno do método fica explícito na declaração sua declaração A palavra chave return indica o fim do método e retorna o resultado da operação
Métodos com retorno Exemplo Retorna um boolean
Métodos com retorno Exemplo de uso
Defina o método transfere, que retira dinheiro da conta e deposita em outra!
Método transfere Possível Solução
Método transfere Invocando o método A passagem de um objeto como parâmetro não clona o objeto!
Em Java, a passagem de parâmetro é por valor! Exemplo
Exemplo (cont.)
Referência this Faz referência ao objeto corrente Mais utilizada em casos de sombreamento Exemplo
Exercício Criar um sistema para controle de uma boate O estabelecimento possui Atributos: Nome, preço do ingresso, lotação máxima, lotação atual, Bar (classe) Método: ingressar: verifica se é possível e ingressa mais uma pessoa na boate
Exercício (cont.) O bar possui Atributos: array de Bebida array de inteiro, armazenando a quantidade de cada bebida em estoque Método Vender: verifica se tem em estoque e vende uma bebida Cada Bebida possui Nome Preço