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

Programação orientada a objetos #2

Programação orientada a objetos #2

Madson Dias

November 11, 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 • Introdução a orientação a objetos(objeto, classe, atributo e método) • Hoje: Criação de objetos
  2. Criação de objetos • String é uma classe e as

    variáveis do tipo string armazenam referências para objetos String. Como criamos um Como criamos um objeto objeto? ?
  3. Antes de criar objetos... • Precisamos criar um método especial

    nas classes que será responsável por inicializar os atributos dos objetos que criaremos • Estes métodos especiais são chamados de construtores
  4. Construtores • Além de métodos e atributos, o corpo de

    uma classe pode conter: Construtores Construtores • Definindo como os atributos de um objeto são inicializados public <nome_da_classe>(<parâmetros>) { <corpo_do_construtor> }
  5. Construtor default • Um construtor sem parâmetros • Caso não

    seja definido um construtor, um construtor implícito dafault é fornecido inicializando seus atributos com seus valores default public Conta() { this.saldo = 0; this.cliente = null; }
  6. Valores default para atributos • 0 para int, double, float,

    long, short, etc. • false para boolean • null para tipos referência null denota uma referência nula, não null denota uma referência nula, não existente, para um objeto de qualquer tipo existente, para um objeto de qualquer tipo
  7. Criação de objetos • Um objeto é criado através do

    operador new Cliente c c = new Cliente(“Madson Dias“, “12345678900“, “Rua A“); new new <nome_da_classe> <nome_da_classe>( (<argumentos> <argumentos>) )
  8. Exercício • Crie uma classe Curso com código e nome.

    • Crie uma classe Aluno, contendo nome, cpf, idade e Curso que o aluno faz. • Lembre-se de criar um construtor bem como os métodos get e set para as classes.
  9. Métodos (boas práticas) • Crie métodos para: • Encapsular complexidade

    e tornar o código mais legível • Evitar código duplicado. Exemplo: o que é mais interessante? – Promover reutilização de código – Isolar operações e estruturas de dados complexos
  10. Métodos (boas práticas) • Métodos devem ter forte coesão: tudo

    dentro de um método deve ser relacionado ao seu propósito central. Se há dois propósitos, deve haver dois métodos. • Por exemplo, o método creditar não deveria imprimir o novo saldo da conta.
  11. Métodos (boas práticas) • Acoplamento é um termo usado para

    descrever quão dependente um método é de outro(s). • O ideal é ter fraco acoplamento. • Existe uma grande disputa sobre qual é o tamanho ideal para métodos: • Uma única página • Pequenos métodos = menos legibilidade • Métodos longos bons = unicidade lógica
  12. Mútiplos construtores • Objetos da classe Conta podem ser inicializados

    de duas formas: public class Conta { private Cliente cliente; private double saldo; public Conta(Cliente c, double s) { this.cliente = c; this.saldo = s; } public Conta(Cliente c) { this(c, 0.0); }... } Chama Chama outro outro construtor construtor da classe da classe
  13. Métodos Overloading • Métodos com o mesmo nome e diferentes

    listas de argumentos • Da mesma forma que os dois construtores de conta.
  14. Variáveis e métodos estáticos • Até aqui as variáveis e

    os métodos de instância: • Para acessar o atributo (variável de instância) ou chamar um método é preciso ter um objeto • Cada objeto tem seu atributo
  15. Variáveis e métodos estáticos • Variáveis e métodos estáticos são

    da classe • Todos os métodos compartilham uma mesma variável estática • Acesso através do nome da classe que os contém • Exemplo: classe para conversão de valores.
  16. Variáveis e métodos estáticos • O método main é estático

    • Por onde se inicia a execução • A execução não inicia de um objeto, mas da classe que contém o main • Métodos estáticos só acessam variáveis e outros métodos estáticos • Atributos e métodos de instância apenas através de objetos, como qualquer outro.
  17. Exercício • Modele um funcionário. Ele deve ter o nome

    do funcionário, o departamento onde trabalha, seu salário (double), a data de entrada no banco (String) e seu RG (String). • Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento.
  18. Exercício • Crie também um método calculaGanhoAnual, que não recebe

    parâmetro algum, devolvendo o valor do salário multiplicado por 12.. • A ideia aqui é apenas modelar, isto é, só identifique que informações são importantes e o que um funcionário faz. Desenhe no papel tudo o que um Funcionario tem e tudo que ele faz.