• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
JAVA - Orientação a Objetos
 

JAVA - Orientação a Objetos

on

  • 672 views

JAVA - Orientação a Objetos

JAVA - Orientação a Objetos

Statistics

Views

Total Views
672
Views on SlideShare
672
Embed Views
0

Actions

Likes
0
Downloads
27
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    JAVA - Orientação a Objetos JAVA - Orientação a Objetos Presentation Transcript

    • Orientação a Objetos Linguagem de Programação II Ciência da Computação Prof.ª Ms. Elaine Cecília Gatto
    • Introdução • Em POO qualquer entidade tem características e comportamentos • Vantagens: • Reutilização de código • Confiabilidade • Facilidade de manutenção e extensão
    • Introdução • OBJETOS: • pessoas, • animais, • plantas, • carros, • aviões, • edifício, • computadores, • sinais de trânsito, • fornos de microondas, • telefones, • casas, • sistemas de refrigerção à água, • etc.
    • Introdução • Dois tipos de objetos • Animados • Inanimados; • Todos os objetos tem atributos: • Tamanho • Forma • Cor • Peso • etc
    • Introdução • Todos os objetos tem comportamentos: • uma bola rola, • uma bola infla, • uma bola murcha • O bebê chora • O bebê dorme • O bebê engatinha • O bebê anda • etc
    • Introdução • Diferentes objetos podem • exibir comportamentos semelhantes • ter atributos semelhantes • Exemplo: • Comparação entre bebês e adultos • Comparação entre humanos e chimpanzés • Portanto OO é semelhante àquilo que as pessoas utilizam para descrever os objetos do mundo real
    • Introdução • Classes: objetos que tem as mesmas características • Exemplo: uma classe de veículos é composta por carros, caminhões e patins. • Herança: novas classes de objetos são derivadas de uma principal, absorvendo características desta e adicionando características únicas
    • Introdução • Mensagens: • Comunicação entre objetos. • Humanos trocam mensagens entre si • Os objetos fazem o mesmo. • Exemplo: um objeto conta bancária pode receber uma mensagem para reduzir seu saldo
    • Introdução • Encapsulamento: • A orientação a objetos empacotam atributos e operações em objetos. • As operações são os comportamentos dos objetos. • Exemplo: podemos dirigir um carro sem conhecer os detalhes de como motores, transmissões, freios e sistemas funcionam internamente, mas sabemos para que serve o acelerador, o freio entre outros.
    • Introdução • Em JAVA a unidade de programação é a CLASSE, a partir da qual os objetos são instanciados (ou criados) • Métodos: implementam operações semelhantes a funções na linguagem C • Campos: implementam atributos e são
    • Introdução • Classes: contém campos e conjunto de métodos que manipulam os campos e fornecem serviços a outras classes • Podemos criar muitos objetos a partir de uma mesma classe • Associações: relacionamento entre classes
    • Introdução • Reutilização de classes: o empacotamento permite isto, diminuindo custos, tempo e esforço, ajudando a construir sistemas mais confiáveis e eficientes. • Classes existentes são confiáveis pois: • Testes, • Depuração, • Ajustes de desempenho
    • Classes e Objetos • Método: • Realiza uma tarefa em um programa (classe) • Descreve os mecanismos que realmente realizam suas tarefas • Oculta do usuário as tarefas complexas que ele realiza • Uma classe abriga um ou mais métodos
    • Classes e Objetos • Exemplo: uma classe que representa uma conta bancária poderia contar com um método para depósitos, outro para saques e outro para obter o saldo • Antes de qualquer coisa, o programador deve construir um objeto de uma classe antes de fazer um programa realizar as tarefas descritas na própria classe
    • Classes e Objetos • Chamada de método: • Quando mensagens são enviadas para um objeto • Instrui o método do objeto a fazer a sua tarefa • Um objeto tem atributos que são portados com o objeto quando ele é utilizado em um programa • Exemplo: cada objeto conta bancária sabe o saldo da conta que ele representa, mas não sabe os saldos de outras contas do banco
    • Classes e Objetos • Atributos são especificados pelas variáveis de instância da classe. • EXEMPLO NO NETBEANS
    • Classes e Objetos • public • É uma palavra chave que é um modificador de acesso • Significa que o método, classe ou objeto está diponível para o público, está acessível a todos • Por fim, pode ser chamado de fora do corpo da declaração de classe, por métodos ou outras classes
    • Classes e Objetos • Void: • Palavra chave • O método realiza uma tarefa mas não retorna nenuma informação • Uma classe que contém o método MAIN é um aplicativo Java • O MAIN é um método especial que é chamado automaticamente pela JVM quando você executar o aplicativo.
    • Classes e Objetos • A maioria dos métodos não são chamados automaticamente • A classe do exemplo não é um aplicativo Java pois não contém um método main. • Ela é simplesmente uma classe.
    • Classes e Objetos • Static: um método static é especial porque pode ser chamado sem primeiro criar um objeto da classe em que o método é declarado • Não podemos chamar um método que pertence a outra classe até criar um objeto dessa classe
    • Classes e Objetos • Cada nova classe que criamos, torna-se um novo tipo em Java que pode ser utilizado para declarar variáveis e criar objetos • New: cria um objeto da classe especificada à direita da palavra chave
    • Classes e Objetos • Representação gráfica de uma classe LivroDeNotas + MostrarMensagem() NomeDaClasse Atributos Métodos
    • Classes e Objetos • Métodos podem exigir um ou mais parametros que representam informações adicionais necessárias para realizar a tarefa • EXEMPLO NO NETBEANS • Ao declarar um método você deve especificar se o método requer dados para realizar a sua tarefa, ou não.
    • Classes e Objetos • Portanto, o método pode ter uma lista de parâmetros. Pode ter nenhum, apenas um ou vários. • Todo parametro deve especificar um tipo e um identificador • Cuidado com o número de parametros e os seus respectivos tipos
    • Classes e Objetos • Representação gráfica do segundo exemplo LivroDeNotas2 + MostrarMensagem(NomeDoCurso : String)
    • Classes e Objetos • Porque preciso importar a classe SCANNER e não importar a classe String ou System? • Porque o pacote java.lang é importado implicitamente em todo o programa java
    • Classes e Objetos • Classes no mesmo pacote (mesma pasta) são importadas implicitamente nos arquivos de códigofonte de outras classes no mesmo pacote • Uma declaração import não será exigida quando uma classe em um pacote utilizar outra domesmo pacote
    • Classes e Objetos • Variáveis locais: • São as variáveis declaradas no corpo de um método particular • Só podem ser utilizadas nesse método. • Quando um método termina, os valores de suas variáveis locais são perdidos
    • Classes e Objetos • Um objeto tem atributos que são portados com o objeto quando ele é utilizado em um programa • Os atributos existem antes de um método ser chamado em um objeto e depois do método completar a execução
    • Classes e Objetos • Os atributos são representados como variáveis em uma declaração de classe • Variáveis são chamadas de CAMPOS • São declaradas dentro de uma declaração de classe, mas fora dos corpos das declarações de método da classe
    • Classes e Objetos • Variavel de instancia: • É o campo que representa o atributo • Ocorre quando cada objeto de uma classe mantém sua própria cópia de um atributo • Cada objeto (ou instancia) da classe tem uma instância separada da variável na memória • EXEMPLO NO NETBEANS
    • Classes e Objetos • Private: • Palavra chave • Modificador de acesso • Só são acessíveis a métodos da classe em que são declarados • Regra geral: • Variáveis de instância devem ser declaradas como private • Métodos devem ser declarados como public
    • Classes e Objetos • Procure declarar todas as variáveis no inicio do seu código, isto deixa o programa legível • Ocultamento de dados: ocorre quando um programa cria um objeto de uma classe, encapsulando seus atributos, que só poderão ser acessados por métodos da classe do objeto • Retorno de método: quando um método tem um tipo, ao completar sua tarefa, o método retorna, ao método chamador, um resultado
    • Classes e Objetos • Todo campo tem um valor inicial padrão; • Esse valor é fornecido pelo JAVA quando o programador não especificar o valor inicial; • O valor padrão de um tipo de dado STRING é o NULL;
    • Classes e Objetos • Recomenda-se inicializar STRINGS com “”, isto é, uma String vazia • Cliente de um objeto: é qualquer classe que chama os métodos do objeto
    • Classes e Objetos • As classes costumam fornecer métodos PUBLIC para permitir a clientes da classe CONFIGURAR ou OBTER valores de variáveis de instância PRIVATE • Métodos SET e GET: métodos para configurar e obter valores • Nomenclatura padrão do JAVA
    • Classes e Objetos • Representação gráfica do terceiro exemplo LivroDeNotas3 - NomeDoCurso : String + setNomeDoCurso( NomeDoCurso : String) + getNomeDoCurso( ) : String + MostrarMensagem()
    • Classes e Objetos • Tipos primitivos em Java: • • • • • • • • Boolean Byte Char Short Int Long Float Double • Todas são inicializadas com o valor ZERO, menos BOOLEAN que é inicializada com FALSE ou TRUE • Tipos NÃO primitivos em Java: • São os tipo por referência • Classes é um tipo não primitivo
    • Classes e Objetos • Variáveis de tipos por referência: são usadas para armazenas as localizações de objetos na memória do computador; • Essas variáveis referenciam objetos no programa; • Os objetos referenciados podem todos conter muitas variáveis de instância e métodos;
    • Classes e Objetos • São inicializadas por padrão com o valor NULL; • NULL = referencia a nada • Uma referencia a um objeto é requerida para invocar os métodos do objeto
    • Classes e Objetos • CONSTRUTOR • É utilizado para inicializar um objeto de uma classe quando o objeto for criado • Java requer uma chamada de construtor para todo objeto que é criado
    • Classes e Objetos • NEW: chama o construtor da classe para realizar a incialização • O compilador JAVA fornece um construtor-padrão sem parametros em qualquer classe que não inclua explictamente um construtor.
    • Classes e Objetos • EXEMPLO NO NETBEANS • Um construtor deve ter o mesmo nome da sua classe • Uma classe pode ter vários métodos construtores • Construtores NÃO podem retornar valores • Se o programador especificar um construtor para a classe, o JAVA não criará um construtor-padrão
    • Classes e Objetos • Representação gráfica do exemplo 4 LivroDeNotas4 - NomeDoCurso : String << construtor >> LivroDeNotas4() << construtor >> LivroDeNotas4( Nome : String) + setNomeDoCurso( Nome : String) + getNomeDoCurso( ) : String + MostrarMensagem()
    • Classes e Objetos • Números de ponto flutuante • Variáveis double podem armazem números com maior magnitude, mais detalhes e mais precisos que as variáveis float • Por padrão, Java trata todos os número de ponto flutuante como DOUBLE e não como FLOAT
    • Classes e Objetos • Números de ponto flutuante • A maioria dos programadores JAVA usam DOUBLE e não FLOAT • O valor armazenado sempre será apenas uma aproximação do valor exato
    • Classes e Objetos • EXEMPLO NO NETBEANS • Representação gráfica do exemplo 5: Conta - saldo : Double << construtor >> Conta( saldoInicial : Double) + Credito(conta : Double) + getSaldo() : Double
    • Métodos • Técnica “Dividir pra conquistar”: melhor forma de desenvolver um programa grande é construí-lo a partir de pequenas e simples partes, ou módulos. • Métodos, classes e pacotes: são os três tipos de módulos em JAVA. • Não reivente a roda! Utilize as APIs do Java e códigos-fontes já existentes na comunidade, para diminuir o tempo de desenvolvimento do seu projeto.
    • Métodos • API: Java Application Programming Interface. Fazem parte do JDK 7. Coleções de classes pré-definidas: • Cálculos matemáticos • Manipulações de Strings • Manipulações de Caracteres • Operações de entrada/saída • Operações de banco de dados • Operações de rede • Processamento de arquivos • Verificação de erros • Etc.
    • Métodos • Métodos são como funções ou procedimentos • Permitem que o programador modularize um programa, separando suas tarefas em unidades • Tornam os programas mais gerenciáveis • Permite reutilização de código
    • Métodos • Um pequeno método que realiza uma única tarefa é mais fácil de testar e depurar do que um método maior que realiza muitas tarefas • Limite o seu método à realização de uma única tarefa
    • Métodos • Dê um nome apropriado ao seu método, que expresse o que ele realmente faz • Um método é invocado por uma chamada de método • Quando o método chamado completa sua tarefa, ele retorna um resultado ou retorna o controle ao chamador
    • Métodos • Métodos static ou métodos de classe: realiza uma tarefa que não depende de nenhum objeto, se aplica à classe em que é declarado como um todo • Não é necessário criar um objeto da classe antes de usar os métodos contidos nela • Exemplo da classe MATH, que contem as funções matemáticas pré-definidas: • Math.sqrt(numero);
    • Métodos MÉTODO DESCRIÇÃO abs(x) Valor absoluto de x ceil(x) Arredonda x para o maior inteiro não menor que x cos(x) Cosseno trigonométrico de x (x em radianos) exp(x) Método exponencial floor(x) Arredonda x para o maior inteiro não maior que x log(x) Logaritmo natural de x (base e) max(x, y) Maior valor de x e y min(x, y) Menor valor de x e y pow(x, y) x elevado à potência de y (isto é, xy) sin(x) Seno trigonométrico de x (x em radianos) sqrt(x) Raiz quadrada de x tan(x) Tangente trigonométrica de x (x em radianos)
    • Métodos • Variáveis de classe: • Campos em que cada objeto de uma classe não tem uma instância separada do campo • Campos static: permite que eles sejam acessados via nome da classe e um ponto • Quando objetos de uma classe que contém campos static são criados, todos os objetos dessa classe compartilham uma cópia dos campos static
    • Métodos • Exemplo no netbeans • Um método com muitos parametros pode estar realizando tarefas demais • Considere dividir o método em métodos menores que realizam tarefas separadas • Um tipo de dado é requerido para cada parametro na lista de parametros de um metodo!
    • Métodos • Três formas de chamar um método. Exemplos: • MaiorValor(n1, n2, n3);  o próprio nome do método • MaiorValor.determineMaximo();  uma variável que contém uma referência a um objeto • Math.sqrt();  o nome da classe
    • Métodos • APIs Java • Classes pré-definidas agrupadas em categorias • Declarações import especificam as classes exigidas para compilar um programa
    • Métodos • Permite que os programadores utilizem o nome simples da classe em vez do nome completamente qualificado da classe • Não preciso usar java.util.Scanner no código, basta usar Scanner, desde que seja usado import java.util.Scanner; no inicio da classe
    • Métodos Pacote Descrição java.applet Criação de applets (web) java.awt Java abstract window toolkit package. Manipulam GUIs java.awt.event Tratamento de eventos de GUI java.io Input/output java.lang LANG = LANGUAGE. Classes e interfaces java diversas java.net NET = NETWORKING. Classes para redes java.text TEXT . Manipula números, datas, caracteres e strings java.util UTIL = UTILITIES. Data, hora, números aleatórios, armazenamento e processamento de dados, divisão de strings. java.swing Componentes GUI swing java.swing.event Tratamento de evento swing
    • Métodos • Sobrecarga de métodos: • Métodos com o mesmo nome podem ser declarados na mesma classe, contanto que tenham diferentes conjuntos de parâmetros • É usada para criar vários métodos com o mesmo nome que realizam as mesmas tarefas ou tarefas semelhantes mas sobre tipos diferentes de números ou números diferentes de argumentos
    • Métodos • Exemplo no netbeans •O compilador distingue os sobrecarregados pelas suas assinaturas métodos • Distingue pelo nome do método, número do método, tipos dos parametros e ordem dos parametros • Void metodo1(int a, float b) e void metodo1(float a, int b) são diferentes!!!!
    • Métodos • Declarações de métodos sobrecarregados com assinaturas idênticas causam erros mesmo que os tipos de retorno sejam diferentes • O tipo de retorno então não diferenciam os métodos!
    • Exercícios