Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programação orientada a objetos #1

Programação orientada a objetos #1

Madson Dias

November 01, 2012
Tweet

More Decks by Madson Dias

Other Decks in Programming

Transcript

  1. O que eu preciso Saber? • Conceitos gerais de programação

    • Tipos primitivos, entrada e saída de dados, operadores • Estruturas condicionais e de repetição
  2. O que temos para hoje? • Compreender • Benefícios da

    Programação Orientada a Objetos • Conceitos básicos e terminologia da programação Orientada a Objetos – Objeto, Classe, Atributo, Método
  3. Benefícios da tecnologia de Objetos • Acelerar o tempo de

    desenvolvimento • Reduzir o tempo de manutenção • Mais fácil de compreender e adaptar • Código de melhor qualidade
  4. Programação Orientada a Objetos • Foco nos dados (Objetos) do

    sistema, não nas funções • Estrutura do programa é baseado nos dados não nas funções • As funções mudam mais do que os dados • Objetos e atividades do mundo real
  5. O que é um objeto? • É o agrupamento dos

    dados e operações que representam um conceito • Conta Bancária – número e saldo – creditar e debitar • Produto (de supermercado) – código, descrição, valor... – atualizar estoque, remarcar preço
  6. Objetos • Um carro pode ser considerado um objeto •

    Identidade ('1') • Estado (sua cor, tipo de pneu, etc...) • Comportamento (respostas ao giro do volante, ao pisar no pedal do freio) • Muitos textos definem um objeto como tendo apenas duas características: estado e comportamento: • Nesses cados, a identidade é parte do esdado
  7. Objeto Conta Bancária Número Saldo “123-x“ 354,50 Creditar Debitar Número

    Saldo “123-x“ 374,50 Creditar Debitar creditar(20)
  8. Classe • Agrupamento de objetos que tem propriedades em comuns

    e realizam as mesmas operações • Descreve como os objetos daquela classe são estruturados internamente (propriedades e operações) • Classe é um conceito, o objeto é uma instância deste conceito
  9. Classe • Portanto, podemos ter vários objetos pertencentes a mesma

    classe • Todos os objetos conta de um banco (um para cada conta) Classe Classe é uma é uma forma forma, , objetos objetos são os são os bolos bolos
  10. Criando uma classe em java • Clicar com o botão

    direito no pacote que quer criar a classe > novo > Nova Classe java
  11. Criando uma classe em java • Cada atributo tem um

    tipo específico que caracteriza as propriedades dos objetos da classe • double e String denotam os tipos cujos elementos são reais e textos
  12. Tipos em Java • Primitivos • char • int •

    boolean • double • ... • Referência • classes (String, Object, Livro, Conta, etc.) • arrays Os elementos de um tipo primitivo são valores Os elementos de um tipo primitivo são valores Os elementos de uma classe são objetos Os elementos de uma classe são objetos
  13. Strings (String) • Não é um tipo primitivo e sim

    uma classe • Literais: “ “, “a“, “DPI\nCapelão Frei Orlando“ • Operadores: + (Concatenação) – „“Outubro “ + “de “ + 99 = “Outubro de 99“ • Note a concatenação de inteiro para String • Há uma conversão implicita de todos os tipos primitivos para String.
  14. Mais operadores sobre Strings • Comparação (igualdade) de dois Strings

    • Tamanho de uma String a String a … String b … if (a.equals(b)) String a … int i = a.length(a)
  15. Mais operadores sobre Strings • Extrair um substring de uma

    String maior String a = “Bem Vindo!“; String s = a.substring(0,3); // a = “Bem“ // caracteres das posições 0, 1 e 2 A classe String tem mais de 50 métodos: A classe String tem mais de 50 métodos: http://goo.gl/EiqH4 http://goo.gl/EiqH4
  16. Information Hiding • A palavra reservada private indica que os

    atributos só podem ser acessados pelas operações realizadas dentro da classe que foram definidos.
  17. Information Hiding em Java • Java não obriga o uso

    de private, mas vários autores consideram que isto é uma pré-condição para programação orientada a objetos. • O bug do ano 2000 e private... • Grande impacto em extensibilidade • Usem private!