Introdução ao Paradigma
    Orientado a Objeto
   Conceitos Fundamentais



    Ludimila Monjardim Casagrande
                2012
Tópicos da Aula

      Classes e objetos
      Estrutura de uma classe
      Representações de uma classe
      Atributos
      Métodos
      Construtores
      Ciclo de vida de um objeto
      Garbage collector


Introdução à OO         ©2012 Ludimila Monjardim Casagrande   2
Classes e Objetos

      Uma classe descreve um conjunto de objetos
          que possuem as mesmas propriedades
          (atributos), os mesmos comportamentos
          (operações/métodos), relacionamentos comuns
          com outros objetos e uma semântica comum.

      Objeto é uma instância de uma classe.




Introdução à OO        ©2012 Ludimila Monjardim Casagrande   3
Classes e Objetos

      Uma classe pode ser definida como um
          conceito, uma abstração ou uma entidade com
          limites e significados bem definidos para a
          aplicação em questão.

      As classes têm dois propósitos: promover o
          entendimento do mundo real e suportar uma
          base prática para uma implementação
          computacional.


Introdução à OO        ©2012 Ludimila Monjardim Casagrande   4
Estrutura de uma Classe

                                    <modificador> class <nome_da_classe> {

                                        [<declaração_dos_atributos>]

                                        [<declaração_dos_construtores>]

Estrutura básica de uma classe          [<declaração_dos_métodos>]
            em UML
                                    }
                                             Estrutura básica de uma classe em
                                                            Java




Introdução à OO              ©2012 Ludimila Monjardim Casagrande                 5
Estrutura de uma Classe - Exemplo
  public class Contador {

       int contador;                                  Atributo e tipo do atributo
       Contador( ) {
         this.contador = 0;                           Construtor default
       }

       void incrementa( ) {
          this.contador++;
       }                                                      Métodos

       void decrementa( ) {
          this.contador--;
       }
  }                    this  referência para o objeto corrente
Introdução à OO                ©2012 Ludimila Monjardim Casagrande                  6
Representações de uma Classe

                                    public class Conta {
                                        private double saldo;
                                        public void creditar (double valor) {
                                            saldo = saldo + valor;
     Representação usando UML
                                        }
     Nota:                              public void debitar (double valor) {
     - private                              saldo = saldo - valor;
     + public
     ~ default                          }
     # protected                    }
                                                Representação usando Java


Introdução à OO            ©2012 Ludimila Monjardim Casagrande                  7
Atributos

      Atributos são dados que caracterizam os objetos
          de uma classe.

      Nome, idade e endereço são exemplos de
          atributos de um objeto Pessoa.

      Cor, ano e modelo são possíveis atributos de
          objetos Carro.



Introdução à OO            ©2012 Ludimila Monjardim Casagrande   8
Atributos

      Cada atributo tem um valor para cada objeto (ou
          instância de classe).

      Cada nome de atributo é único em cada classe.

      A declaração de qualquer atributo em uma
          classe é composta minimamente pelo tipo do
          atributo (que pode ser um tipo primitivo ou uma
          classe) e pelo identificador do atributo.


Introdução à OO          ©2012 Ludimila Monjardim Casagrande   9
Tipos Primitivos do Java

      Os tipos primitivos da linguagem Java são:
            boolean
            char
            byte
            short
            int
            long
            float
            double


Introdução à OO        ©2012 Ludimila Monjardim Casagrande   10
Métodos

      Um método é uma operação ou função que
          pode ser aplicada a objetos de uma classe.

      Por exemplo: abrir, fechar, salvar e imprimir são
          operações que podem ser aplicadas a objetos
          da classe Arquivo.

      Todos os objetos de uma classe possuem as
          mesmas operações, também conhecidas como
          comportamentos.

Introdução à OO         ©2012 Ludimila Monjardim Casagrande   11
Exemplos de Métodos

  public class Aluno {
       int matricula;

       public int obterMatricula( ) {                       Método sem argumentos,
         return matricula;                                  que retorna um int
       }

       public void alterarMatricula                         Método com argumentos,
                         (int matr) {                       que não retorna nada
         matricula = matr;
       }
  }

Introdução à OO           ©2012 Ludimila Monjardim Casagrande                   12
Construtores

      Objetos são criados por meio da execução de
          um dos seus construtores.
      Os construtores possuem o mesmo nome da
          classe.
      Métodos construtores definidos para uma certa
          classe podem ou não possuir argumentos.
      O construtor sem argumentos ou construtor
          vazio é considerado o construtor default.

Introdução à OO         ©2012 Ludimila Monjardim Casagrande   13
Exemplos de Construtores
   public class Conta {
        private double saldo;
        public Conta ( ) {                               Construtor default
        }
        public Conta (double saldo) {                          Construtor com
           this.saldo = saldo;
                                                               um argumento
        }
        public void creditar (double valor) {
           saldo = saldo + valor;
        }
        public void debitar (double valor) {
           saldo = saldo - valor;
        }                                                Os construtores normalmente
        public double obterSaldo ( ) {                   inicializam os atributos da
           return saldo;                                 classe.
        }
   }
Introdução à OO                 ©2012 Ludimila Monjardim Casagrande                    14
Ciclo de Vida de um Objeto

      Todo objeto em um programa ou aplicação é
          criado em tempo de execução, utilizado e
          destruído.

      Em Java, a palavra-chave new é usada para
          criar um novo objeto como uma instância de
          uma classe específica, retornando como
          resultado uma referência para o objeto criado.



Introdução à OO         ©2012 Ludimila Monjardim Casagrande   15
Ciclo de Vida de um Objeto

      Em Java um objeto não precisa ser
          explicitamente destruído como acontece, por
          exemplo, em C++.

      No caso da linguagem Java, a memória alocada
          para um objeto é liberada por um processo de
          baixa prioridade denominado garbage collector,
          quando esse objeto não estiver mais sendo
          usado e quando ele não puder mais ser
          acessado.

Introdução à OO         ©2012 Ludimila Monjardim Casagrande   16
Garbage Collection

      Em Java não é possível determinar quando um
          objeto será coletado.

      Existem alguns métodos que, quando chamados
          em algum ponto do código, sugerem que objetos
          não utilizados sejam coletados. Esses métodos são:
                  System.gc( )              e           Runtime.gc( )

      No entanto, isso não garante a execução do
          garbage collector nesse ponto, uma vez que outro
          processo de maior prioridade pode impedi-lo.

Introdução à OO           ©2012 Ludimila Monjardim Casagrande           17
Exemplo de Criação de um Objeto
     public class Principal {
         public static void main (String[] args) {
             Conta c1 = new Conta( );                               Chamada do construtor
                                                                    default
             c1.creditar(10.0);
             System.out.println(c1.obterSaldo());
             Conta c2 = new Conta(50.0);                        Chamada do construtor
                                                                com um argumento
             c2.creditar(10.0);
             System.out.println(c2.obterSaldo());
         }                                                      c1 e c2 são objetos
                                                                distintos e independentes
     }
Introdução à OO               ©2012 Ludimila Monjardim Casagrande                           18
Acesso aos Membros de uma Classe

      Os atributos e métodos também são chamados
          de membros de uma classe.
      Em Java, a seguinte sintaxe é utilizada para se
          ter acesso aos membros da classe:
           <objeto>.<membro>              ou        <classe>.<membro>
      Exemplos:
            c1.creditar(10.0);
            aluno1.ra;
            System.out;

Introdução à OO            ©2012 Ludimila Monjardim Casagrande          19
API do Java

       Existem duas versões principais de APIs
        (Application Program Interface) do Java
         Java SE: Java Platform Standard Edition 7
            http://download.oracle.com/javase/7/docs/api/
         Java EE: Java Platform Enterprise Edition 6
            http://docs.oracle.com/javaee/6/api/index.html

       A especificação de uma API contém todas as
        classes e interfaces nativas do Java.
         Exemplos: Date, List, ArrayList, String, etc.

POO                      ©2012 Ludimila Monjardim Casagrande   20
Leituras Recomendadas

      FJ-11: Java e Orientação a Objetos.
          Caelum Ensino e Inovação.
          http://www.caelum.com.br/curso/fj-11-java-
          orientacao-objetos/.

      Orientação a Objetos em Java
          K19 Treinamentos.
          http://www.k19.com.br/downloads/apostilas-java.




Introdução à OO          ©2012 Ludimila Monjardim Casagrande   21

POO - 01 - Introdução ao Paradigma Orientado a Objetos

  • 1.
    Introdução ao Paradigma Orientado a Objeto Conceitos Fundamentais Ludimila Monjardim Casagrande 2012
  • 2.
    Tópicos da Aula  Classes e objetos  Estrutura de uma classe  Representações de uma classe  Atributos  Métodos  Construtores  Ciclo de vida de um objeto  Garbage collector Introdução à OO ©2012 Ludimila Monjardim Casagrande 2
  • 3.
    Classes e Objetos  Uma classe descreve um conjunto de objetos que possuem as mesmas propriedades (atributos), os mesmos comportamentos (operações/métodos), relacionamentos comuns com outros objetos e uma semântica comum.  Objeto é uma instância de uma classe. Introdução à OO ©2012 Ludimila Monjardim Casagrande 3
  • 4.
    Classes e Objetos  Uma classe pode ser definida como um conceito, uma abstração ou uma entidade com limites e significados bem definidos para a aplicação em questão.  As classes têm dois propósitos: promover o entendimento do mundo real e suportar uma base prática para uma implementação computacional. Introdução à OO ©2012 Ludimila Monjardim Casagrande 4
  • 5.
    Estrutura de umaClasse <modificador> class <nome_da_classe> { [<declaração_dos_atributos>] [<declaração_dos_construtores>] Estrutura básica de uma classe [<declaração_dos_métodos>] em UML } Estrutura básica de uma classe em Java Introdução à OO ©2012 Ludimila Monjardim Casagrande 5
  • 6.
    Estrutura de umaClasse - Exemplo public class Contador { int contador; Atributo e tipo do atributo Contador( ) { this.contador = 0; Construtor default } void incrementa( ) { this.contador++; } Métodos void decrementa( ) { this.contador--; } } this  referência para o objeto corrente Introdução à OO ©2012 Ludimila Monjardim Casagrande 6
  • 7.
    Representações de umaClasse public class Conta { private double saldo; public void creditar (double valor) { saldo = saldo + valor; Representação usando UML } Nota: public void debitar (double valor) { - private saldo = saldo - valor; + public ~ default } # protected } Representação usando Java Introdução à OO ©2012 Ludimila Monjardim Casagrande 7
  • 8.
    Atributos  Atributos são dados que caracterizam os objetos de uma classe.  Nome, idade e endereço são exemplos de atributos de um objeto Pessoa.  Cor, ano e modelo são possíveis atributos de objetos Carro. Introdução à OO ©2012 Ludimila Monjardim Casagrande 8
  • 9.
    Atributos  Cada atributo tem um valor para cada objeto (ou instância de classe).  Cada nome de atributo é único em cada classe.  A declaração de qualquer atributo em uma classe é composta minimamente pelo tipo do atributo (que pode ser um tipo primitivo ou uma classe) e pelo identificador do atributo. Introdução à OO ©2012 Ludimila Monjardim Casagrande 9
  • 10.
    Tipos Primitivos doJava  Os tipos primitivos da linguagem Java são:  boolean  char  byte  short  int  long  float  double Introdução à OO ©2012 Ludimila Monjardim Casagrande 10
  • 11.
    Métodos  Um método é uma operação ou função que pode ser aplicada a objetos de uma classe.  Por exemplo: abrir, fechar, salvar e imprimir são operações que podem ser aplicadas a objetos da classe Arquivo.  Todos os objetos de uma classe possuem as mesmas operações, também conhecidas como comportamentos. Introdução à OO ©2012 Ludimila Monjardim Casagrande 11
  • 12.
    Exemplos de Métodos public class Aluno { int matricula; public int obterMatricula( ) { Método sem argumentos, return matricula; que retorna um int } public void alterarMatricula Método com argumentos, (int matr) { que não retorna nada matricula = matr; } } Introdução à OO ©2012 Ludimila Monjardim Casagrande 12
  • 13.
    Construtores  Objetos são criados por meio da execução de um dos seus construtores.  Os construtores possuem o mesmo nome da classe.  Métodos construtores definidos para uma certa classe podem ou não possuir argumentos.  O construtor sem argumentos ou construtor vazio é considerado o construtor default. Introdução à OO ©2012 Ludimila Monjardim Casagrande 13
  • 14.
    Exemplos de Construtores public class Conta { private double saldo; public Conta ( ) { Construtor default } public Conta (double saldo) { Construtor com this.saldo = saldo; um argumento } public void creditar (double valor) { saldo = saldo + valor; } public void debitar (double valor) { saldo = saldo - valor; } Os construtores normalmente public double obterSaldo ( ) { inicializam os atributos da return saldo; classe. } } Introdução à OO ©2012 Ludimila Monjardim Casagrande 14
  • 15.
    Ciclo de Vidade um Objeto  Todo objeto em um programa ou aplicação é criado em tempo de execução, utilizado e destruído.  Em Java, a palavra-chave new é usada para criar um novo objeto como uma instância de uma classe específica, retornando como resultado uma referência para o objeto criado. Introdução à OO ©2012 Ludimila Monjardim Casagrande 15
  • 16.
    Ciclo de Vidade um Objeto  Em Java um objeto não precisa ser explicitamente destruído como acontece, por exemplo, em C++.  No caso da linguagem Java, a memória alocada para um objeto é liberada por um processo de baixa prioridade denominado garbage collector, quando esse objeto não estiver mais sendo usado e quando ele não puder mais ser acessado. Introdução à OO ©2012 Ludimila Monjardim Casagrande 16
  • 17.
    Garbage Collection  Em Java não é possível determinar quando um objeto será coletado.  Existem alguns métodos que, quando chamados em algum ponto do código, sugerem que objetos não utilizados sejam coletados. Esses métodos são: System.gc( ) e Runtime.gc( )  No entanto, isso não garante a execução do garbage collector nesse ponto, uma vez que outro processo de maior prioridade pode impedi-lo. Introdução à OO ©2012 Ludimila Monjardim Casagrande 17
  • 18.
    Exemplo de Criaçãode um Objeto public class Principal { public static void main (String[] args) { Conta c1 = new Conta( ); Chamada do construtor default c1.creditar(10.0); System.out.println(c1.obterSaldo()); Conta c2 = new Conta(50.0); Chamada do construtor com um argumento c2.creditar(10.0); System.out.println(c2.obterSaldo()); } c1 e c2 são objetos distintos e independentes } Introdução à OO ©2012 Ludimila Monjardim Casagrande 18
  • 19.
    Acesso aos Membrosde uma Classe  Os atributos e métodos também são chamados de membros de uma classe.  Em Java, a seguinte sintaxe é utilizada para se ter acesso aos membros da classe: <objeto>.<membro> ou <classe>.<membro>  Exemplos:  c1.creditar(10.0);  aluno1.ra;  System.out; Introdução à OO ©2012 Ludimila Monjardim Casagrande 19
  • 20.
    API do Java  Existem duas versões principais de APIs (Application Program Interface) do Java  Java SE: Java Platform Standard Edition 7  http://download.oracle.com/javase/7/docs/api/  Java EE: Java Platform Enterprise Edition 6  http://docs.oracle.com/javaee/6/api/index.html  A especificação de uma API contém todas as classes e interfaces nativas do Java.  Exemplos: Date, List, ArrayList, String, etc. POO ©2012 Ludimila Monjardim Casagrande 20
  • 21.
    Leituras Recomendadas  FJ-11: Java e Orientação a Objetos. Caelum Ensino e Inovação. http://www.caelum.com.br/curso/fj-11-java- orientacao-objetos/.  Orientação a Objetos em Java K19 Treinamentos. http://www.k19.com.br/downloads/apostilas-java. Introdução à OO ©2012 Ludimila Monjardim Casagrande 21