Orientação a Objetos
Quebrando em métodos

●   Refatorar o exercicios dos números primos para
    que fique mais legivel
Analisando o método

●   void nomeMetodo(<tipoArg> arg, …)
●   <tipoRetorno> nomeMetodo(<tipoArg> arg, …)
●   Métodos com tipoRetorno sempre especificam
    return no seu corpo.
Paradigmas

●   Paradigma Procedural: quando estruturamos nosso código
    em ações (métodos)
●   Paradigma da Orientação a Objetos: quando estuturamos o
    código em dados e ações (métodos)
Estruturando a informação

●   Algumas vezes, por questões de organização e
    compreensão, queremos estruturar nossas
    informações de modo parecido com o mundo real.
●   Estruturamos nossa informação na forma de uma
    classe, de forma que declaramos as principais
    propriedades de um objeto.
●   Exemplo: “PropriedadesCarta”
Classe vs Objeto

●   Classe é a definição estruturada da composição de
    um Objeto.
●   Objeto são informações criadas, ou seja,
    propriamente instanciadas em memória.
●   A variável associada a um objeto não “guarda” o
    objeto, ela é apenas uma referencia.
●   O “new”, aloca memória para o objeto e retorna a
    referência desse objeto (enderaco da memoria).
Propriedades + Ações

●   Além de propriedades, nossos objetos podem
    declarar “ações” especificas através da declaração
    de metodos.
●   Exemplo: nomeDaCarta, maiorQue.
Métodos especiais

●   Construtor: tem o mesmo nome da classe e serve
    como método de inicialização de um objeto
●   toString: metodo especial para representar um
    objeto em forma de uma String
●   equals, hashCode, wait, notify, notifyAll
Exercicios de Sala

●   Criar Classe Retangulo, com as propriedades,
    base, altura e os metodos perimetro e area
●   Criar Classes Banco e Conta e implementar
    metodos de sacar, depositar e tranfererir o saldo
Modificadores de acesso

●   public: atributos e métodos acessíveis em outras
    classes.
●   private: atributos e métodos acessíveis somente na
    mesma classe.
●   protected: atributos e métodos acessíveis em
    subclasses e classes no mesmo pacote.
●   default: atributos e métodos acessíveis em classes
    no mesmo pacote.
Métodos de acesso

●   Quando queremos acessar (escrever ou ler) uma
    informacao de uma propriedade privada.
●   Getters e Setters
●   public void setSaldo(double saldo){...}
●   public double getSaldo(){...}
Atributos de classe

●   Palavra reservada static.
●   Não necessita ter a sua classe instanciada para
    poder ser usado.
●   Métodos estáticos, não tem acesso à referência
    this, pois um método estático é chamado através
    da Classe e não de um Objeto.
●   static tem um “sabor” procedural, que muitas vezes
    se faz necessario.
Duvidas?

3 orientacao-objetos

  • 1.
  • 2.
    Quebrando em métodos ● Refatorar o exercicios dos números primos para que fique mais legivel
  • 3.
    Analisando o método ● void nomeMetodo(<tipoArg> arg, …) ● <tipoRetorno> nomeMetodo(<tipoArg> arg, …) ● Métodos com tipoRetorno sempre especificam return no seu corpo.
  • 4.
    Paradigmas ● Paradigma Procedural: quando estruturamos nosso código em ações (métodos) ● Paradigma da Orientação a Objetos: quando estuturamos o código em dados e ações (métodos)
  • 5.
    Estruturando a informação ● Algumas vezes, por questões de organização e compreensão, queremos estruturar nossas informações de modo parecido com o mundo real. ● Estruturamos nossa informação na forma de uma classe, de forma que declaramos as principais propriedades de um objeto. ● Exemplo: “PropriedadesCarta”
  • 6.
    Classe vs Objeto ● Classe é a definição estruturada da composição de um Objeto. ● Objeto são informações criadas, ou seja, propriamente instanciadas em memória. ● A variável associada a um objeto não “guarda” o objeto, ela é apenas uma referencia. ● O “new”, aloca memória para o objeto e retorna a referência desse objeto (enderaco da memoria).
  • 7.
    Propriedades + Ações ● Além de propriedades, nossos objetos podem declarar “ações” especificas através da declaração de metodos. ● Exemplo: nomeDaCarta, maiorQue.
  • 8.
    Métodos especiais ● Construtor: tem o mesmo nome da classe e serve como método de inicialização de um objeto ● toString: metodo especial para representar um objeto em forma de uma String ● equals, hashCode, wait, notify, notifyAll
  • 9.
    Exercicios de Sala ● Criar Classe Retangulo, com as propriedades, base, altura e os metodos perimetro e area ● Criar Classes Banco e Conta e implementar metodos de sacar, depositar e tranfererir o saldo
  • 10.
    Modificadores de acesso ● public: atributos e métodos acessíveis em outras classes. ● private: atributos e métodos acessíveis somente na mesma classe. ● protected: atributos e métodos acessíveis em subclasses e classes no mesmo pacote. ● default: atributos e métodos acessíveis em classes no mesmo pacote.
  • 11.
    Métodos de acesso ● Quando queremos acessar (escrever ou ler) uma informacao de uma propriedade privada. ● Getters e Setters ● public void setSaldo(double saldo){...} ● public double getSaldo(){...}
  • 12.
    Atributos de classe ● Palavra reservada static. ● Não necessita ter a sua classe instanciada para poder ser usado. ● Métodos estáticos, não tem acesso à referência this, pois um método estático é chamado através da Classe e não de um Objeto. ● static tem um “sabor” procedural, que muitas vezes se faz necessario.
  • 13.