JAVA - Orientação a Objetos

1,919 views

Published on

JAVA - Orientação a Objetos

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,919
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
98
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

JAVA - Orientação a Objetos

  1. 1. Orientação a Objetos Linguagem de Programação II Ciência da Computação Prof.ª Ms. Elaine Cecília Gatto
  2. 2. 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
  3. 3. 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.
  4. 4. Introdução • Dois tipos de objetos • Animados • Inanimados; • Todos os objetos tem atributos: • Tamanho • Forma • Cor • Peso • etc
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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.
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. Classes e Objetos • Atributos são especificados pelas variáveis de instância da classe. • EXEMPLO NO NETBEANS
  17. 17. 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
  18. 18. 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.
  19. 19. 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.
  20. 20. 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
  21. 21. 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
  22. 22. Classes e Objetos • Representação gráfica de uma classe LivroDeNotas + MostrarMensagem() NomeDaClasse Atributos Métodos
  23. 23. 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.
  24. 24. 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
  25. 25. Classes e Objetos • Representação gráfica do segundo exemplo LivroDeNotas2 + MostrarMensagem(NomeDoCurso : String)
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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;
  35. 35. 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
  36. 36. 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
  37. 37. Classes e Objetos • Representação gráfica do terceiro exemplo LivroDeNotas3 - NomeDoCurso : String + setNomeDoCurso( NomeDoCurso : String) + getNomeDoCurso( ) : String + MostrarMensagem()
  38. 38. 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
  39. 39. 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;
  40. 40. 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
  41. 41. 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
  42. 42. 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.
  43. 43. 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
  44. 44. 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()
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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.
  49. 49. 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.
  50. 50. 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
  51. 51. 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
  52. 52. 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
  53. 53. 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);
  54. 54. 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)
  55. 55. 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
  56. 56. 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!
  57. 57. 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
  58. 58. Métodos • APIs Java • Classes pré-definidas agrupadas em categorias • Declarações import especificam as classes exigidas para compilar um programa
  59. 59. 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
  60. 60. 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
  61. 61. 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
  62. 62. 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!!!!
  63. 63. 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!
  64. 64. Exercícios

×