SlideShare uma empresa Scribd logo
JAVA – Classes e Objectos
     – Encapsulamento



     ATAI




                            1
POO
   Objectos e Classes


   Três pilares da POO
       Encapsulamento
       Herança
       Polimorfismo


                          2
Objecto

   Objecto
      identidade

            Identifica o objecto entre a colecção de objectos existentes
       atributos
            Propriedades que definem o estado do objecto (estrutura
             interna).
       métodos
            Acções ou procedimentos que alteram o estado do objecto
             (comportamento).

   Objectos podem ser agrupados em Classes


                                                         3
Classe
   Uma CLASSE é um molde que serve de padrão para a criação de Objectos
    similares designados por instâncias da classe e que caracterizam-se por:

       Possuem a mesma estrutura interna: atributos

       Possuem o mesmo interface: métodos

   CLASSES representam ainda um muito importante mecanismo de partilha
    de código, dado que os métodos que implementam a funcionalidade de
    todas as instâncias têm o seu código num único local, ou seja, a sua
    CLASSE, contendo as instâncias apenas os valores que representam o seu
    estado interno.



                                                             4
Exemplo: Classe Conta
class Conta {
   private final long numeroConta;
   private double saldo;

public Conta (long id) {
    NumeroConta = id;
  }
public void credito (double valor) {
           saldo = saldo + valor;
  }
public void debito (double valor) {
           saldo = saldo - valor;
  }
public double getSaldo () {
          return saldo;
  }
public long getNumConta () {
          return numeroConta;
  }
public String toString () {
          return (“Numero da Conta: ”+ numeroConta + “tSaldo:” + saldo);
  }
}


                                                         5
Classes em UML (Unified Modeling Language)
   Uma classe é representada por um rectângulo,
    subdividido em três áreas:
          A primeira contém o nome da Classe.
          A segunda contém seus atributos.
          A terceira contém suas operações.

                                          Nome da
                       Conta               classe

                 - numeroConta:long
                 - saldo : double                   atributos



                 + Conta(long)
                 + debito(double)                           operações
                 + credito(double)
                 + getSaldo() : double
                 + getNumConta() : long


                                                                6
Exemplo: Uso da Classe Conta

class CriaConta {
   /** Criar objecto do tipo Conta    */

    public static void main (String [] args) {
      Conta conta1, conta2;
       conta1 = new Conta (4563764);
       conta2 = new Conta (1238765);

        conta1.credito(500.00);
        conta1.debito(45.00);

        conta2.credito(400.00);
        conta2.debito(60.00);
        System.out.println(conta1);
        System.out.println(conta2);

    }
}


                                                 7
Criar Instâncias (Objectos)
   Em Java, como em qualquer linguagem OO, não é possível definir
    objectos directamente.

   É necessário definir primeiro a classe a que o objecto pertence.
   A classe funciona como um molde que pode ser utilizado para criar
    qualquer número de objectos semelhantes.

   A definição de uma classe implica a especificação dos seus
    atributos (variáveis) e do seu comportamento (métodos).

   Um objecto é, assim, definido como instância de uma classe e
    tem todas as variáveis e métodos definidos para essa classe.

   A operação new cria uma instância de uma classe, e é responsável
    pela alocação dos objectos em memória.



                                                     8
Sobre os Dados
   Visibilidade dos Dados                     Instanciação dos dados
                                                   As variáveis numeroConta e saldo na
       A visibilidade dos dados é a zona
                                                    classe Conta são atributos de
        do programa no qual os dados
                                                    instancia, porque cada objecto da
        podem ser utilizados.                       Classe Conta possui uma variável
                                                    não partilhada.
       Dados declarados fora dos
        métodos podem ser usados por               Numa classe são declarados os
        todos os métodos da classe.                 atributos, mas não é reservado
                                                    memória para eles.
       Dados declarados num método só
        podem ser usados no método.                Sempre que um objecto Conta é
                                                    criado, novas variáveis numeroConta
                                                    e saldo são criadas. Todos os
                                                    objectos partilham o código dos
                                                    métodos, mas cada um possui o seu
                                                    espaço de dados.




                                                                  9
Métodos Especiais: Construtor
   similares a métodos;
   possuem o mesmo nome das respectivas classes;
   não têm tipo de retorno;
   podem existir mais do que um por classe (sobrecarga de métodos
    /overloading).

   Atenção !
    Existe sempre um construtor implícito com o mesmo nome da
    classe e sem parâmetros, o qual inicializa os atributos com
    seus valores por defeito!


    Conta () {NumeroConta = 111111; saldo = 0;}
    Conta (long n) {NumeroConta = n; saldo = 0;}
    Conta (long n, double s) {NumeroConta = n; saldo = s;}


                                                 10
Noção de Encapsulamento
  O encapsulamento leva a observar um objecto como uma caixa preta




Métodos públicos                                    Atributos públicos

Métodos privados                                    Atributos privados

                                                     11
Encapsulamento

                   objecto1
                                          Um objecto é uma capsula que possui:
                    Estrutura de Dados
                          privada         •Estrutura de dados privada

                                          •Uma API constituída por métodos públicos
m1   método público 1
                                          •Um conjunto de métodos privados
m2   método público2


m3   método público3


                        método privado1




                                                               12
Encapsulamento em Java
   O Encapsulamento numa classe é feita pelo uso de palavras
    reservadas que estão associadas aos atributos e métodos da
    classe.
   Estes são designados por modificadores de visibilidade.
   São so seguintes os modificadores de visibilidade:
       public - permite acesso a partir de qualquer classe
       private - permite acesso apenas na própria classe
       protected - permite acesso apenas na própria classe e nas
        subclasses (associado a herança!)
       nada


          Nota:
          Um atributo ou método sem modificador de acesso é acessível a
          qualquer classe do mesmo package.

                                                       13
Uso dos modificadores nos Atributos

   Consequências de tornar um atributo privado
       Tentar aceder a um atributo privado (i.e. fora da classe) resulta
        em um erro de compilação!
       Mas como torná-lo acessível apenas para consulta (leitura)?
            Isto é possível definindo-se um método que retorna o atributo (na
             própria classe onde o atributo se encontra)

   Consequências de tornar um atributo publico
       É possível, mas viola o encapsulamento, é aceitável no caso
        dos atributos constantes (i.e. Com o modificador final)!




                                                             14
Modificadores de visibilidade


                  public              private


Atributos         Viola                Reforça
             encapsulamento        encapsulamento



                                   Suporta outros
            Proporciona Serviços
 Métodos                            metodos na
                aos clientes
                                       classe




                                         15
Composição na definição de Classes
   Composição

       Mecanismo básico e simples de reutilização que consiste em uma classe poder usar na
        sua definição classes já definidas.

       Este mecanismo de composição consiste na possibilidade de as variáveis de instância
        definidas numa classe poderem ser associadas a classes já existentes.

       A manipulação de tais variáveis dentro da classe que se está a definir se toma simplificada,
        dado que apenas teremos que enviar as mensagens que activam os métodos que são
        disponibilizados por tais classes já definidas.

   Tipos de relacionamento

       Usa
             Diz-se que A usa (uses) B, sempre que uma classe, no código dos seus métodos de
              instância, cria e manipula objectos de outra.

       Contém

             Diz-se que a classe A contém (has) objectos da classe B, sempre que algumas
              variáveis de instância de A vão ter objectos que são instâncias da classe B. De B dir-se-
              á que é parte de (part-of) A


                                                                              16
Definição de Classes Usando Composição…
                           Definição de uma Conta bancária

   Requisitos Iniciais
      Uma conta bancária pode ter 1 ou mais titulares, sendo um deles o titular principal, do qual
       se conhece a morada.
      Cada conta possui um saldo actual e um "plafond" de crédito que pode variar de conta para
       conta, mas que é definido quando esta é criada.
      A qualquer momento é possível realizar um depósito.
      Um levantamento apenas pode ser realizado se a importância pedida não ultrapassar o
       "plafond" de crédito definido.
      A qualquer momento deverá ser possível saber o saldo da conta.
      Deverá ser possível eliminar titulares e acrescentar titulares novos.
      Deverá registar-se o número total de movimentos activos realizados sobre a conta, ou seja,
       depósitos e levantamentos.

   Definição de Estrutura
       String NumConta
       String morada
       Vector titulares
       int saldo
       int numMov
       int plafond



                                                                            17
Definição de Classes Usando Composição…
    Classe Vector
   Classe Vector implementa uma abstracção de dados que é uma estrutura
    linear indexada a partir de índice 0. Idêntica ao array, mas sem limite de
    dimensão.

   Os métodos
     Vector (int capInicial);

     Vector();

     void addElement (Object obj);

     void insertElementAt (Object obj, int index);

     Object clone();

     boolean contains (Object obj);

     Object firstElement();

     Object elementAt (int index);

     boolean remove (int index);

     Object [] toArray();

     int size();


                                                              18
Definição de Classes Usando Composição…
import java.util.*;
public class ContaBanc {

   // construtor
   public ContaBanc (String numct, String titp, String mora,
                          int sld, int plf) {
        numConta = numct;
        morada = mora;
        saldo = sld >=0 ? sld : 0;
        plafond = plf >=0 ? plf : 0;
        numMov = 0;
        titulares = new Vector(5);
        this.insereTit(titp);
   }

   // variáveis de instância

   private   String numConta;
   private   String morada;
   private   Vector titulares;
   private   int saldo;
   private   int plafond;
   private   int numMov;


                                                        19
Definição de Classes Usando Composição…
 // métodos de instância

 public String getNumConta () {
      return numConta;
 }

 public String getTitular () {
       return (String) titulares.firstElement();
 }

 public int getSaldo () {
       return saldo;
 }

 public int getNumMov() {
       return numMov;
 }

 public int getPlafond() {
       return plafond;
 }




                                                   20
Definição de Classes Usando Composição
    public Object[] getTitulares() {
          return titulares.toArray(); }

    public boolean preLevanta (int valor) { // pré-cond
                 return (saldo + plafond) >= valor ;}

    void levanta (int valor) {     // ver pré-cond
         saldo = saldo - valor;
         numMov = numMov +1;}

    public void deposita (int valor) {
         saldo = saldo + valor;
         numMov = numMov + 1;}

    public void insereTit (String titular) {
         titulares.addElement(titular); }

    public void alteraMorada (String mora) {
         morada = mora;}

    public void alteraPlafond (int nplaf) {
         plafond = nplaf;}
}


                                                          21
Complementos na Definição de Classe…
   Uma classe pode conter sua própria estrutura de dados e os seus próprios métodos
    (static), para além de possuir uma definição das variáveis e métodos das suas
    instâncias:
       Variáveis de classe
           Representam a estrutura interna de uma classe
           O acesso as variáveis deverá apenas ser realizado através de métodos de
            classe, mantendo-se o princípio do encapsulamento.

           Permitem guardar na classe informações que podem dizer respeito à
            globalidade das instâncias criadas e que não fariam sentido colocar em
            qualquer outro local.


       Métodos de classe
          Implementam o comportamento de uma classe
          Servem para garantir o acesso e a manipulação dos valores associados às
           variáveis de classe



                                                                  22
Complementos na Definição de Classe…
    Requisitos adicionais na Classe ContaBanc:
      Deverá ser possível possuir a cada momento o número total de contas já criadas.
      Deverá ser possível possuir a cada momento o somatório dos saldos das contas existentes.
public class ContaBanc {
   // variaveis de Classe
   static int numContas = 0;
   static int saldoTotal = 0;                  int total = ContaBanc.getNumContas();
                                      int saldot = ContaBanc.getSaldoTotal();
    // metodos de Classe
    static int getNumContas() {
        return numContas;             ContaBanc.incNumContas();
    }
    static int getSaldoTotal() {      ContaBanc.actSaldoTotal(novoSaldo);
        return saldoTotal ;
    }
    static void incNumContas() {
        numContas++;
    }
    static void actSaldoTotal(int saldo) {
         saldoTotal += saldo;
    }

…
                                                                        23
Complementos na Definição de Classe…
// actualização do construtor
   public ContaBanc(String numct, String titp, String mora,
                    int sld, int plf) {
       incNumContas();
       numConta = numct;
       morada = mora;
       saldo = sld >=0 ? sld : 0;
       actSaldoTotal (saldo);
       plafond = plf >=0 ? plf : 0;
       numMov = 0;
       titulares = new Vector(5);
       this.insereTit(titp);
   }




                                             24
Projecto: Contador
   Requisitos Iniciais: Especificar a estrutura e o comportamento de Objectos do
    tipo contador que satisfaçam os seguintes requisitos:
       Os contadores deverão ser contadores de tipo inteiro.
       Deverá ser possível criar contadores com valor inicial igual a 0.
       Deverá ser possível criar contadores com valor inicial igual ao valor dado como parâmetro.
       Deverá ser possível saber qual o valor actual de um dado contador.
       Deverá ser possível incrementar o contador de 1 unidade ou de um valor dado como
        parâmetro.
       Deverá ser possível decrementar o contador de 1 unidade ou de um valor dado como
        parâmetro.
       Deverá ser possível obter uma representação textual de um contador.

   Definição de Estrutura:
       i.e., quais deverão ser as suas variáveis de instância (os seus nomes e os seus tipos).
       cada contador deverá ter apenas que ser capaz de conter um valor de tipo inteiro
        correspondente à contagem que tal contador representa.

   Definição do Comportamento:
       Construtores de Instância
       Métodos de Instância




                                                                           25
Definição do comportamento…
   Construtores de Instância
      Os construtores de uma classe são todos os métodos especiais que são declarados na classe
       e que têm por identificador o exacto nome da classe
      Podem ter argumentos (valores de qualquer tipo de dados)
      Têm como objectivo criar instâncias de tal classe que sejam de imediato manipuláveis.
      Os construtores, dado criarem instâncias de uma dada classe, não têm que especificar qual o
       seu resultado, que será sempre uma instância da respectiva classe.
      É possível definir mais do que um construtor de instâncias de uma dada classe, construtores
       que, em geral, apenas diferem nas inicializações realizadas.

   Métodos de Instância: <tipo de resultado> <identificador> (<pares tipo-nome >)
       <tipo de resultado>
           Tipo primitivo
           Nome de uma classe ( String, Date, Point, etc.)
           void caso o método não devolva qualquer resultado
       <identificador>
       <pares tipo-nome>
           lista de parâmetros formais




                                                                          26
Definição do comportamento

   Sobrecarga de métodos
       Possibilidade de numa mesma classe definir métodos tendo o mesmo nome mas diferentes
        parâmetros formais de entrada.

       Os métodos construtores são métodos particulares que estão sempre em sobrecarga, dado
        que são mesmo obrigados a ter o mesmo nome (identificador da classe).

       Métodos de instância passa-se exactamente o mesmo.

       Em PPO métodos e mensagens são entidades distintas: mensagens são as entidades que
        são responsáveis pela activação da computação programada num dado método.

        Assim, quando se envia uma mensagem com um certo identificador e uma certa lista de
        argumentos a um objecto, a determinação de qual o método que deve ser executado pelo
        objecto receptor depende da compatibilidade entre a estrutura da mensagem recebida e as
        assinaturas dos métodos pelo mesmo tomados acessíveis. É escolhido para execução o
        método cuja assinatura corresponda à estrutura da mensagem recebida quanto ao nome,
        número, tipo e ordem dos parâmetros actuais de tal mensagem.




                                                                         27
Implementação Classe Contador…
class Contador{

   //construtores

   Contador(){conta = 0; }

   Contador(int val){ conta = val;}


   //variáveis de instância

   int conta;


   //métodos de instância

   int getConta() { return conta; // interrogador - selector}

   void incConta() {conta = conta + 1;// modificador do estado}

...


                                                        28
Implementação Classe Contador…


…
void incConta(int x) {conta = conta + x;// modificador do estado}

void decConta() {conta = conta - 1;// modificador do estado}

void decConta(int x) { conta = conta -x; // modificador do estado}

String toString() { return (new String("Contador = " + conta));}


  }




                                                       29
Exemplo: Classe Contador com modificadores
de acesso
public class Contador{

  // construtores

  public Contador(){
       conta = 0;
  }

  public Contador(int val){
       conta = val;
  }

  // variáveis de instância

  private int conta;

  // métodos de instância

  public int getConta() {
       return conta;    // interrogador - selector
  }


                                                     30
Exemplo: Classe Contador com modificadores
de acesso
public void incConta() {
         conta = conta + 1;// modificador do estado
         }

public void incConta(int x) {
 conta = conta + x;// modificador do estado
         }

public void decConta() {
 conta = conta - 1;// modificador do estado
         }

public void decConta(int x) {
 conta = conta -x; // modificador do estado
         }

public String toString() {
 return (new String("Contador = " + conta));
   }

  }



                                                      31
Exemplo: Teste da Classe Contador

public class TesteContador {

   // Classe de teste da Classe Contador

        public static void main(String args[]) {

        // Criação de Instâncias

        Contador ct1, ct2, ct3;
        ct1 = new Contador();
        ct2 = new Contador(20);
        ct3 = new Contador(10);

        // Utilização das Instâncias

        int c1, c2, c3;   // variáveis auxiliares

        c1 = ct1.getConta();
        c2 = ct2.getConta();




                                                    32
Exemplo: Teste da Classe Contador
     // primeira saída de resultados para verificação

     System.out.println("c1 = " + c1);
     System.out.println("c2 = " + c2);

     // alterações às instâncias e novos resultados

     ct1.incConta(); ct2.incConta(12);
     c1 = ct1.getConta(); c2 = ct2.getConta();
     c3 = c1 + c2;
     System.out.println("c1 + c2 = " + c3);

     ct3.decConta(); ct2.decConta(5);
     c1 = ct2.getConta(); c2 = ct3.getConta();
     c3 = c1 + c2;
     System.out.println("c1 + c2 = " + c3);

     // conversão para string e apresentação

     System.out.println(ct1.toString());
     System.out.println(ct2.toString());

     }
 }


                                                        33

Mais conteúdo relacionado

Mais procurados

POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
Ludimila Monjardim Casagrande
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
Antonio Oliveira
 
Uml diagrama de atividades
Uml   diagrama de atividadesUml   diagrama de atividades
Uml diagrama de atividades
Jordan Oliveira
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1
Elaine Cecília Gatto
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
Rafael Pinheiro
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
Ludimila Monjardim Casagrande
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Ludimila Monjardim Casagrande
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Rafael Pinheiro
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
Alberto Simões
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
Leinylson Fontinele
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
Denis L Presciliano
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Janynne Gomes
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
Vinícius de Paula
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
Franklin Matos Correia
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
Robson de Negreiros
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
Edmilson Filho
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
Luis Ferreira
 

Mais procurados (20)

POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Uml diagrama de atividades
Uml   diagrama de atividadesUml   diagrama de atividades
Uml diagrama de atividades
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 

Destaque

Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
Felippe Rodrigo Puhle
 
Introdução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a ObjetosIntrodução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a Objetos
Fernando Machado
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections
Eduardo Carvalho
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
Regis Magalhães
 
Programação orientada a_objetos
Programação orientada a_objetosProgramação orientada a_objetos
Programação orientada a_objetos
Claudio Araujo
 
Apostila java completo
Apostila java completoApostila java completo
Apostila java completo
Sliedesharessbarbosa
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SE
Evandro Júnior
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
Nécio de Lima Veras
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
Moises Omena
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
Marcio Marinho
 

Destaque (11)

Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
Introdução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a ObjetosIntrodução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a Objetos
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Programação orientada a_objetos
Programação orientada a_objetosProgramação orientada a_objetos
Programação orientada a_objetos
 
Apostila java completo
Apostila java completoApostila java completo
Apostila java completo
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SE
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 

Semelhante a Classes e Objectos JAVA

Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
Breno Vitorino
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
Ryan Padilha
 
Java7
Java7Java7
Poo
PooPoo
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
Regis Magalhães
 
03 poo
03 poo03 poo
03 poo
eduardohabib
 
Aula 4 acessibilidade
Aula 4   acessibilidadeAula 4   acessibilidade
Aula 4 acessibilidade
Danilo Alves
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
Juliano Weber
 
v
vv
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
Ramon Mayor Martins
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
Marconi Rodrigues
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Java11
Java11Java11
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
Gardênia Santana
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
Mayron Cachina
 
Poo
PooPoo
3- POO
3- POO3- POO
3- POO
Frank Coelho
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
rafa nonato
 
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
guest9b4c7f
 

Semelhante a Classes e Objectos JAVA (20)

Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Java7
Java7Java7
Java7
 
Poo
PooPoo
Poo
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
03 poo
03 poo03 poo
03 poo
 
Aula 4 acessibilidade
Aula 4   acessibilidadeAula 4   acessibilidade
Aula 4 acessibilidade
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
v
vv
v
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Java11
Java11Java11
Java11
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Poo
PooPoo
Poo
 
3- POO
3- POO3- POO
3- POO
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
 

Mais de Pedro De Almeida

APM Model in .NET - PT-pt
APM Model in .NET - PT-ptAPM Model in .NET - PT-pt
APM Model in .NET - PT-pt
Pedro De Almeida
 
Java memory model primary ref. - faq
Java memory model   primary ref. - faqJava memory model   primary ref. - faq
Java memory model primary ref. - faq
Pedro De Almeida
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
Pedro De Almeida
 
IP Multicast Routing
IP Multicast RoutingIP Multicast Routing
IP Multicast Routing
Pedro De Almeida
 
XSD Incomplete Overview Draft
XSD Incomplete Overview DraftXSD Incomplete Overview Draft
XSD Incomplete Overview Draft
Pedro De Almeida
 
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
Pedro De Almeida
 
Validation of a credit card number
Validation of a credit card numberValidation of a credit card number
Validation of a credit card number
Pedro De Almeida
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
Pedro De Almeida
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
Pedro De Almeida
 
Sessão 10 Códigos Cíclicos
Sessão 10 Códigos CíclicosSessão 10 Códigos Cíclicos
Sessão 10 Códigos Cíclicos
Pedro De Almeida
 
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canalSessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
Pedro De Almeida
 
Sessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-ZivSessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-Ziv
Pedro De Almeida
 
Sessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritméticaSessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritmética
Pedro De Almeida
 
Sessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonteSessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonte
Pedro De Almeida
 
Sessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticosSessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticos
Pedro De Almeida
 
Sessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidadeSessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidade
Pedro De Almeida
 
Sessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocosSessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocos
Pedro De Almeida
 
Sessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasSessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e Entropias
Pedro De Almeida
 
Cripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de SegurançaCripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de Segurança
Pedro De Almeida
 
Basic java tutorial
Basic java tutorialBasic java tutorial
Basic java tutorial
Pedro De Almeida
 

Mais de Pedro De Almeida (20)

APM Model in .NET - PT-pt
APM Model in .NET - PT-ptAPM Model in .NET - PT-pt
APM Model in .NET - PT-pt
 
Java memory model primary ref. - faq
Java memory model   primary ref. - faqJava memory model   primary ref. - faq
Java memory model primary ref. - faq
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
IP Multicast Routing
IP Multicast RoutingIP Multicast Routing
IP Multicast Routing
 
XSD Incomplete Overview Draft
XSD Incomplete Overview DraftXSD Incomplete Overview Draft
XSD Incomplete Overview Draft
 
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
 
Validation of a credit card number
Validation of a credit card numberValidation of a credit card number
Validation of a credit card number
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
 
Sessão 10 Códigos Cíclicos
Sessão 10 Códigos CíclicosSessão 10 Códigos Cíclicos
Sessão 10 Códigos Cíclicos
 
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canalSessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
 
Sessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-ZivSessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-Ziv
 
Sessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritméticaSessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritmética
 
Sessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonteSessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonte
 
Sessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticosSessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticos
 
Sessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidadeSessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidade
 
Sessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocosSessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocos
 
Sessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasSessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e Entropias
 
Cripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de SegurançaCripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de Segurança
 
Basic java tutorial
Basic java tutorialBasic java tutorial
Basic java tutorial
 

Último

Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
edivirgesribeiro1
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
NatySousa3
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
ReinaldoSouza57
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
apresentação sobre Clarice Lispector .pptx
apresentação sobre Clarice Lispector .pptxapresentação sobre Clarice Lispector .pptx
apresentação sobre Clarice Lispector .pptx
JuliaMachado73
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Centro Jacques Delors
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
sthefanydesr
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
analuisasesso
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
DanielCastro80471
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 

Último (20)

Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
apresentação sobre Clarice Lispector .pptx
apresentação sobre Clarice Lispector .pptxapresentação sobre Clarice Lispector .pptx
apresentação sobre Clarice Lispector .pptx
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 

Classes e Objectos JAVA

  • 1. JAVA – Classes e Objectos – Encapsulamento ATAI 1
  • 2. POO  Objectos e Classes  Três pilares da POO  Encapsulamento  Herança  Polimorfismo 2
  • 3. Objecto  Objecto  identidade  Identifica o objecto entre a colecção de objectos existentes  atributos  Propriedades que definem o estado do objecto (estrutura interna).  métodos  Acções ou procedimentos que alteram o estado do objecto (comportamento).  Objectos podem ser agrupados em Classes 3
  • 4. Classe  Uma CLASSE é um molde que serve de padrão para a criação de Objectos similares designados por instâncias da classe e que caracterizam-se por:  Possuem a mesma estrutura interna: atributos  Possuem o mesmo interface: métodos  CLASSES representam ainda um muito importante mecanismo de partilha de código, dado que os métodos que implementam a funcionalidade de todas as instâncias têm o seu código num único local, ou seja, a sua CLASSE, contendo as instâncias apenas os valores que representam o seu estado interno. 4
  • 5. Exemplo: Classe Conta class Conta { private final long numeroConta; private double saldo; public Conta (long id) { NumeroConta = id; } public void credito (double valor) { saldo = saldo + valor; } public void debito (double valor) { saldo = saldo - valor; } public double getSaldo () { return saldo; } public long getNumConta () { return numeroConta; } public String toString () { return (“Numero da Conta: ”+ numeroConta + “tSaldo:” + saldo); } } 5
  • 6. Classes em UML (Unified Modeling Language)  Uma classe é representada por um rectângulo, subdividido em três áreas:  A primeira contém o nome da Classe.  A segunda contém seus atributos.  A terceira contém suas operações. Nome da Conta classe - numeroConta:long - saldo : double atributos + Conta(long) + debito(double) operações + credito(double) + getSaldo() : double + getNumConta() : long 6
  • 7. Exemplo: Uso da Classe Conta class CriaConta { /** Criar objecto do tipo Conta */ public static void main (String [] args) { Conta conta1, conta2; conta1 = new Conta (4563764); conta2 = new Conta (1238765); conta1.credito(500.00); conta1.debito(45.00); conta2.credito(400.00); conta2.debito(60.00); System.out.println(conta1); System.out.println(conta2); } } 7
  • 8. Criar Instâncias (Objectos)  Em Java, como em qualquer linguagem OO, não é possível definir objectos directamente.  É necessário definir primeiro a classe a que o objecto pertence.  A classe funciona como um molde que pode ser utilizado para criar qualquer número de objectos semelhantes.  A definição de uma classe implica a especificação dos seus atributos (variáveis) e do seu comportamento (métodos).  Um objecto é, assim, definido como instância de uma classe e tem todas as variáveis e métodos definidos para essa classe.  A operação new cria uma instância de uma classe, e é responsável pela alocação dos objectos em memória. 8
  • 9. Sobre os Dados  Visibilidade dos Dados  Instanciação dos dados  As variáveis numeroConta e saldo na  A visibilidade dos dados é a zona classe Conta são atributos de do programa no qual os dados instancia, porque cada objecto da podem ser utilizados. Classe Conta possui uma variável não partilhada.  Dados declarados fora dos métodos podem ser usados por  Numa classe são declarados os todos os métodos da classe. atributos, mas não é reservado memória para eles.  Dados declarados num método só podem ser usados no método.  Sempre que um objecto Conta é criado, novas variáveis numeroConta e saldo são criadas. Todos os objectos partilham o código dos métodos, mas cada um possui o seu espaço de dados. 9
  • 10. Métodos Especiais: Construtor  similares a métodos;  possuem o mesmo nome das respectivas classes;  não têm tipo de retorno;  podem existir mais do que um por classe (sobrecarga de métodos /overloading).  Atenção ! Existe sempre um construtor implícito com o mesmo nome da classe e sem parâmetros, o qual inicializa os atributos com seus valores por defeito! Conta () {NumeroConta = 111111; saldo = 0;} Conta (long n) {NumeroConta = n; saldo = 0;} Conta (long n, double s) {NumeroConta = n; saldo = s;} 10
  • 11. Noção de Encapsulamento O encapsulamento leva a observar um objecto como uma caixa preta Métodos públicos Atributos públicos Métodos privados Atributos privados 11
  • 12. Encapsulamento objecto1 Um objecto é uma capsula que possui: Estrutura de Dados privada •Estrutura de dados privada •Uma API constituída por métodos públicos m1 método público 1 •Um conjunto de métodos privados m2 método público2 m3 método público3 método privado1 12
  • 13. Encapsulamento em Java  O Encapsulamento numa classe é feita pelo uso de palavras reservadas que estão associadas aos atributos e métodos da classe.  Estes são designados por modificadores de visibilidade.  São so seguintes os modificadores de visibilidade:  public - permite acesso a partir de qualquer classe  private - permite acesso apenas na própria classe  protected - permite acesso apenas na própria classe e nas subclasses (associado a herança!)  nada Nota: Um atributo ou método sem modificador de acesso é acessível a qualquer classe do mesmo package. 13
  • 14. Uso dos modificadores nos Atributos  Consequências de tornar um atributo privado  Tentar aceder a um atributo privado (i.e. fora da classe) resulta em um erro de compilação!  Mas como torná-lo acessível apenas para consulta (leitura)?  Isto é possível definindo-se um método que retorna o atributo (na própria classe onde o atributo se encontra)  Consequências de tornar um atributo publico  É possível, mas viola o encapsulamento, é aceitável no caso dos atributos constantes (i.e. Com o modificador final)! 14
  • 15. Modificadores de visibilidade public private Atributos Viola Reforça encapsulamento encapsulamento Suporta outros Proporciona Serviços Métodos metodos na aos clientes classe 15
  • 16. Composição na definição de Classes  Composição  Mecanismo básico e simples de reutilização que consiste em uma classe poder usar na sua definição classes já definidas.  Este mecanismo de composição consiste na possibilidade de as variáveis de instância definidas numa classe poderem ser associadas a classes já existentes.  A manipulação de tais variáveis dentro da classe que se está a definir se toma simplificada, dado que apenas teremos que enviar as mensagens que activam os métodos que são disponibilizados por tais classes já definidas.  Tipos de relacionamento  Usa  Diz-se que A usa (uses) B, sempre que uma classe, no código dos seus métodos de instância, cria e manipula objectos de outra.  Contém  Diz-se que a classe A contém (has) objectos da classe B, sempre que algumas variáveis de instância de A vão ter objectos que são instâncias da classe B. De B dir-se- á que é parte de (part-of) A 16
  • 17. Definição de Classes Usando Composição… Definição de uma Conta bancária  Requisitos Iniciais  Uma conta bancária pode ter 1 ou mais titulares, sendo um deles o titular principal, do qual se conhece a morada.  Cada conta possui um saldo actual e um "plafond" de crédito que pode variar de conta para conta, mas que é definido quando esta é criada.  A qualquer momento é possível realizar um depósito.  Um levantamento apenas pode ser realizado se a importância pedida não ultrapassar o "plafond" de crédito definido.  A qualquer momento deverá ser possível saber o saldo da conta.  Deverá ser possível eliminar titulares e acrescentar titulares novos.  Deverá registar-se o número total de movimentos activos realizados sobre a conta, ou seja, depósitos e levantamentos.  Definição de Estrutura  String NumConta  String morada  Vector titulares  int saldo  int numMov  int plafond 17
  • 18. Definição de Classes Usando Composição… Classe Vector  Classe Vector implementa uma abstracção de dados que é uma estrutura linear indexada a partir de índice 0. Idêntica ao array, mas sem limite de dimensão.  Os métodos  Vector (int capInicial);  Vector();  void addElement (Object obj);  void insertElementAt (Object obj, int index);  Object clone();  boolean contains (Object obj);  Object firstElement();  Object elementAt (int index);  boolean remove (int index);  Object [] toArray();  int size(); 18
  • 19. Definição de Classes Usando Composição… import java.util.*; public class ContaBanc { // construtor public ContaBanc (String numct, String titp, String mora, int sld, int plf) { numConta = numct; morada = mora; saldo = sld >=0 ? sld : 0; plafond = plf >=0 ? plf : 0; numMov = 0; titulares = new Vector(5); this.insereTit(titp); } // variáveis de instância private String numConta; private String morada; private Vector titulares; private int saldo; private int plafond; private int numMov; 19
  • 20. Definição de Classes Usando Composição… // métodos de instância public String getNumConta () { return numConta; } public String getTitular () { return (String) titulares.firstElement(); } public int getSaldo () { return saldo; } public int getNumMov() { return numMov; } public int getPlafond() { return plafond; } 20
  • 21. Definição de Classes Usando Composição public Object[] getTitulares() { return titulares.toArray(); } public boolean preLevanta (int valor) { // pré-cond return (saldo + plafond) >= valor ;} void levanta (int valor) { // ver pré-cond saldo = saldo - valor; numMov = numMov +1;} public void deposita (int valor) { saldo = saldo + valor; numMov = numMov + 1;} public void insereTit (String titular) { titulares.addElement(titular); } public void alteraMorada (String mora) { morada = mora;} public void alteraPlafond (int nplaf) { plafond = nplaf;} } 21
  • 22. Complementos na Definição de Classe…  Uma classe pode conter sua própria estrutura de dados e os seus próprios métodos (static), para além de possuir uma definição das variáveis e métodos das suas instâncias:  Variáveis de classe  Representam a estrutura interna de uma classe  O acesso as variáveis deverá apenas ser realizado através de métodos de classe, mantendo-se o princípio do encapsulamento.  Permitem guardar na classe informações que podem dizer respeito à globalidade das instâncias criadas e que não fariam sentido colocar em qualquer outro local.  Métodos de classe  Implementam o comportamento de uma classe  Servem para garantir o acesso e a manipulação dos valores associados às variáveis de classe 22
  • 23. Complementos na Definição de Classe…  Requisitos adicionais na Classe ContaBanc:  Deverá ser possível possuir a cada momento o número total de contas já criadas.  Deverá ser possível possuir a cada momento o somatório dos saldos das contas existentes. public class ContaBanc { // variaveis de Classe static int numContas = 0; static int saldoTotal = 0; int total = ContaBanc.getNumContas(); int saldot = ContaBanc.getSaldoTotal(); // metodos de Classe static int getNumContas() { return numContas; ContaBanc.incNumContas(); } static int getSaldoTotal() { ContaBanc.actSaldoTotal(novoSaldo); return saldoTotal ; } static void incNumContas() { numContas++; } static void actSaldoTotal(int saldo) { saldoTotal += saldo; } … 23
  • 24. Complementos na Definição de Classe… // actualização do construtor public ContaBanc(String numct, String titp, String mora, int sld, int plf) { incNumContas(); numConta = numct; morada = mora; saldo = sld >=0 ? sld : 0; actSaldoTotal (saldo); plafond = plf >=0 ? plf : 0; numMov = 0; titulares = new Vector(5); this.insereTit(titp); } 24
  • 25. Projecto: Contador  Requisitos Iniciais: Especificar a estrutura e o comportamento de Objectos do tipo contador que satisfaçam os seguintes requisitos:  Os contadores deverão ser contadores de tipo inteiro.  Deverá ser possível criar contadores com valor inicial igual a 0.  Deverá ser possível criar contadores com valor inicial igual ao valor dado como parâmetro.  Deverá ser possível saber qual o valor actual de um dado contador.  Deverá ser possível incrementar o contador de 1 unidade ou de um valor dado como parâmetro.  Deverá ser possível decrementar o contador de 1 unidade ou de um valor dado como parâmetro.  Deverá ser possível obter uma representação textual de um contador.  Definição de Estrutura:  i.e., quais deverão ser as suas variáveis de instância (os seus nomes e os seus tipos).  cada contador deverá ter apenas que ser capaz de conter um valor de tipo inteiro correspondente à contagem que tal contador representa.  Definição do Comportamento:  Construtores de Instância  Métodos de Instância 25
  • 26. Definição do comportamento…  Construtores de Instância  Os construtores de uma classe são todos os métodos especiais que são declarados na classe e que têm por identificador o exacto nome da classe  Podem ter argumentos (valores de qualquer tipo de dados)  Têm como objectivo criar instâncias de tal classe que sejam de imediato manipuláveis.  Os construtores, dado criarem instâncias de uma dada classe, não têm que especificar qual o seu resultado, que será sempre uma instância da respectiva classe.  É possível definir mais do que um construtor de instâncias de uma dada classe, construtores que, em geral, apenas diferem nas inicializações realizadas.  Métodos de Instância: <tipo de resultado> <identificador> (<pares tipo-nome >)  <tipo de resultado>  Tipo primitivo  Nome de uma classe ( String, Date, Point, etc.)  void caso o método não devolva qualquer resultado  <identificador>  <pares tipo-nome>  lista de parâmetros formais 26
  • 27. Definição do comportamento  Sobrecarga de métodos  Possibilidade de numa mesma classe definir métodos tendo o mesmo nome mas diferentes parâmetros formais de entrada.  Os métodos construtores são métodos particulares que estão sempre em sobrecarga, dado que são mesmo obrigados a ter o mesmo nome (identificador da classe).  Métodos de instância passa-se exactamente o mesmo.  Em PPO métodos e mensagens são entidades distintas: mensagens são as entidades que são responsáveis pela activação da computação programada num dado método.  Assim, quando se envia uma mensagem com um certo identificador e uma certa lista de argumentos a um objecto, a determinação de qual o método que deve ser executado pelo objecto receptor depende da compatibilidade entre a estrutura da mensagem recebida e as assinaturas dos métodos pelo mesmo tomados acessíveis. É escolhido para execução o método cuja assinatura corresponda à estrutura da mensagem recebida quanto ao nome, número, tipo e ordem dos parâmetros actuais de tal mensagem. 27
  • 28. Implementação Classe Contador… class Contador{ //construtores Contador(){conta = 0; } Contador(int val){ conta = val;} //variáveis de instância int conta; //métodos de instância int getConta() { return conta; // interrogador - selector} void incConta() {conta = conta + 1;// modificador do estado} ... 28
  • 29. Implementação Classe Contador… … void incConta(int x) {conta = conta + x;// modificador do estado} void decConta() {conta = conta - 1;// modificador do estado} void decConta(int x) { conta = conta -x; // modificador do estado} String toString() { return (new String("Contador = " + conta));} } 29
  • 30. Exemplo: Classe Contador com modificadores de acesso public class Contador{ // construtores public Contador(){ conta = 0; } public Contador(int val){ conta = val; } // variáveis de instância private int conta; // métodos de instância public int getConta() { return conta; // interrogador - selector } 30
  • 31. Exemplo: Classe Contador com modificadores de acesso public void incConta() { conta = conta + 1;// modificador do estado } public void incConta(int x) { conta = conta + x;// modificador do estado } public void decConta() { conta = conta - 1;// modificador do estado } public void decConta(int x) { conta = conta -x; // modificador do estado } public String toString() { return (new String("Contador = " + conta)); } } 31
  • 32. Exemplo: Teste da Classe Contador public class TesteContador { // Classe de teste da Classe Contador public static void main(String args[]) { // Criação de Instâncias Contador ct1, ct2, ct3; ct1 = new Contador(); ct2 = new Contador(20); ct3 = new Contador(10); // Utilização das Instâncias int c1, c2, c3; // variáveis auxiliares c1 = ct1.getConta(); c2 = ct2.getConta(); 32
  • 33. Exemplo: Teste da Classe Contador // primeira saída de resultados para verificação System.out.println("c1 = " + c1); System.out.println("c2 = " + c2); // alterações às instâncias e novos resultados ct1.incConta(); ct2.incConta(12); c1 = ct1.getConta(); c2 = ct2.getConta(); c3 = c1 + c2; System.out.println("c1 + c2 = " + c3); ct3.decConta(); ct2.decConta(5); c1 = ct2.getConta(); c2 = ct3.getConta(); c3 = c1 + c2; System.out.println("c1 + c2 = " + c3); // conversão para string e apresentação System.out.println(ct1.toString()); System.out.println(ct2.toString()); } } 33

Notas do Editor

  1. Um objecto em PPO possui uma estrutura de dados interna e privada, que corresponde à sua representação definida Claro que tal representação atributiva e de carácter informático é apenas uma das muitas que poderiam ter sido encontradas. Por exemplo, a representação de um Ponto2D, ou seja, um ponto do plano que necessita de ser caracterizado por dois valores inteiros ou reais que representam as suas coordenadas em x e y, tanto poderia ser conseguida à custa de 2 variáveis simples do tipo inteiro ou real, como por um
  2. Uma variável que guarde o número total de contas já criadas não é certamente uma variável de instância Nenhuma conta necessita de saber o total de contas já criadas. Se só poderíamos usar variáveis de instância , então tal variável de instância, por exemplo, tcontas, apareceria em todas as instâncias de ContaBanc Se já existissem 120 contas, em todas as instâncias deveria aparecer com o valor 120 Pior ainda, logo que uma nova conta fosse criada, 120 mensagens deveriam ser de imediato enviadas às 120 instâncias, dando a indicação de que agora passam a ser 121.