SlideShare uma empresa Scribd logo
1 de 27
Introdução à Programação Orientada a Objetos

                Prof. Adriano Teixeira de Souza
   Foco nos dados (objetos) do sistema, não nas
    funções

   Estruturação do programa é baseada nos
    dados, não nas funções

   As funções mudam mais do que os dados
   Dois conceitos estão associados a objetos:
    eles possuem estados, expressos em
    variáveis/atributos, e comportamentos, que
    expressam funcionalidades/métodos.

   Logo, uma possível definição de objetos pode
    ser: Um objeto é um artefato de software que
    é composto por um conjunto de variáveis e
    os respectivos métodos.



                 Iniciação ao Java – Márcio F. Campos
creditar
    Creditar




Saldo    Número

875,32   21.342-7




    debitar
creditar(20)


    Creditar
   creditar                            Creditar
                                      creditar




Saldo    Número                    Saldo    Número

875,32   21.342-7                  895,32   21.342-7




    debitar                            debitar
   Objetos
         comportamento + características
         métodos + atributos
         estado encapsulado
   Quando nos referenciamos a conceitos, e não
    a objetos, estamos tratando de classes.

   Uma definição para classe é: uma classe é
    uma referência, um conceito que estabelece
    quais os métodos e quais as variáveis são
    comuns a todos os objetos desta classe.
   Classes
       agrupamento de objetos do mesmo tipo



                         Telefone
          Fixo
       Gradiente   Philips          Celular
                                      Iphone 4s
public class NomeDaClasse {
     CorpoDaClasse
 }



O corpo de uma classe pode conter
  • atributos
  • métodos
  • construtores (inicializadores)
  • outras classes...
public class <nome> {
  public static void main (String[] args) {
        <declarações>
        <comandos>
  }
}

 Onde, main: método por onde se inicia a execução
       public: parâmetro de acesso
       static: indica que main se aplica à classe
       void: indica que main não retorna um valor
public class LeImprime {
    /** Lê e imprime um string */
    public static void main(String[] args) {
        String nome;
        nome = Util.readStr();
        System.out.println(nome);
    }
}
public class Livro {
    private int anoDePublicacao;
    private int numeroDePaginas;
    private String titulo;
    ...
}

   cada atributo tem um tipo específico que
    caracteriza as propriedades dos objetos da
    classe

   int e String denotam os tipos cujos
    elementos são inteiros e strings
   Primitivos               Referência
    ◦   char                  ◦ classes (String,
    ◦   int                     Object, Livro,
    ◦   boolean                 Conta, etc.)
    ◦   double                ◦ interfaces
    ◦   ...                   ◦ arrays


Os elementos de um tipo primitivo são valores,
enquanto os elementos de um tipo referência
são (referências para) objetos!
   Não é um tipo primitivo e sim uma classe

   Literais: “” “a” “POLI n UPE n”

   Operadores: + (concatenação)

ex.: “maio ” + “ de ” + 99 = “maio de 99”
    Note a conversão de inteiro para string
    Há uma conversão implícita para todos os
    tipos primitivos
   Comparação (igualdade) de dois strings a e b
     String a ...
     String b ...
     a.equals(b) ou b.equals(a)

   Tamanho de um string a
     a.length()
public class Livro {
       private int anoDePublicacao;
       ...
   }


A palavra reservada private indica que os
atributos só podem ser acessados (isto é,
lidos ou modificados) pelas operações da
classe correspondente
   Java não obriga o uso de private, mas vários
    autores consideram isto uma pré-condição
    para programação orientada a objetos

   Grande impacto em extensibilidade

   Usem private!
public class Pessoa {
         private int anoDeNascimento;
         private String nome, sobrenome;
         private boolean casado = false;
       ...
     }

   vários atributos de um mesmo tipo podem
    ser declarados conjuntamente

   podemos especificar que um atributo deve
    ser inicializado com um valor específico
public class Conta {
    private String   numero;
    private double   saldo;

    public void creditar(double valor) {
        saldo = saldo + valor;
    }
    ...
}

Um método é uma operação que realiza ações
 e modifica os valores dos atributos do objeto
       responsável pela sua execução
parâmetros
public class Conta {          do método
    ...

      public void debitar(double valor) {
         saldo = saldo - valor;
      }
}

        tipo de
                              corpo do
        retorno                método


    Por quê o método debitar não tem como
          Parâmetro o número da conta?
   O tipo do valor a ser retornado pelo método
   Nome do método
   Lista, possivelmente vazia, indicando o tipo e
    o nome dos argumentos a serem recebidos
    pelo método

        Usa-se void para indicar que o método
       não retorna nenhum valor, apenas altera
         os valores dos atributos de um objeto
public class Conta {
    private String numero;
    private double saldo;

    public String getNumero() {
        return numero;
    }
    public double getSaldo() {
        return saldo;
    }
    ...
}

Os métodos que retornam valores como
resultado usam o comando return
   Comandos que determinam as ações do
    método

   Estes comandos podem
    ◦ realizar simples atualizações dos atributos de um
      objeto

    ◦ retornar valores

    ◦ executar ações mais complexas como se comunicar
      com outros objetos
   Os objetos se comunicam para realizar
    tarefas
   A comunicação é feita através da troca de
    mensagens ou chamada de métodos
   Cada mensagem é uma requisição para que
    um objeto execute uma operação específica
            conta.creditar(45.30)

       variável contendo
        referência para        nome do
             objeto          método a ser
                              executado
concatenação de
public class Conta {
  private String   numero;       String e conversão
  private double   saldo;             de tipos

    public void imprimirSaldo() {
      System.out.println("Conta: " +
         numero + " Saldo: R$" + saldo);
    }
    ...
}
A tela do computador é representada em Java por
   um objeto especial, armazenado na variável
                  System.out
   Faça um programa que:
    ◦ Leia um vetor “turma” de 5 alunos
    ◦ Cada registro/Objeto de aluno deve ter o número
      de matrícula do aluno e suas notas de quatro
      bimestres.

    ◦ Imprima a lista de matrícula e notas de cada aluno

    ◦ E finalmente calcule a média das quatro notas e
      imprima a matricula e a média calcula para cada
      aluno.



                            Prof. Adriano Teixeira de Souza
   Escreva um programa para cadastrar 10
    produtos de uma empresa. As informações
    necessárias são: código, nome do produto,
    quantidade e preço. Deve ser usada uma
    estrutura para a construção deste cadastro. O
    programa deverá apresentar um menu de
    opções semelhante ao apresentado abaixo:

   Escolha sua opção:
    ◦ 1 – Cadastrar produto
    ◦ 2 – Listar todos
    ◦ 4 – Sair


                              Prof. Adriano Teixeira de Souza

Mais conteúdo relacionado

Mais procurados

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 ObjetoMarconi Rodrigues
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Marcelo Zeferino
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 
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 ClassesCursoSENAC
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetosPaulo Carvalho
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
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
 
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 objetosNécio de Lima Veras
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesOziel Moreira Neto
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)Mario Sergio
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 

Mais procurados (20)

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
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 
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
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
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
 
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
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)
 
Java11
Java11Java11
Java11
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 

Destaque

Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Pedro Guerreiro
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesAdriano Teixeira de Souza
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 

Destaque (20)

Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Easy Rails
Easy RailsEasy Rails
Easy Rails
 
Java 15 Jar
Java 15 JarJava 15 Jar
Java 15 Jar
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Java 14 Javadoc
Java 14 JavadocJava 14 Javadoc
Java 14 Javadoc
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 

Semelhante a Introdução à Programação Orientada a Objetos

Semelhante a Introdução à Programação Orientada a Objetos (20)

POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 
Java 05 Oo Basica
Java 05 Oo BasicaJava 05 Oo Basica
Java 05 Oo Basica
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
03 poo
03 poo03 poo
03 poo
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
Java7
Java7Java7
Java7
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Aula 02 implementação objeto
Aula 02   implementação objetoAula 02   implementação objeto
Aula 02 implementação objeto
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Naked Objects
Naked ObjectsNaked Objects
Naked Objects
 
Poo
PooPoo
Poo
 

Mais de Adriano Teixeira de Souza

Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosParadigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesAdriano Teixeira de Souza
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CAdriano Teixeira de Souza
 

Mais de Adriano Teixeira de Souza (15)

Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de Exceções
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosParadigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 

Introdução à Programação Orientada a Objetos

  • 1. Introdução à Programação Orientada a Objetos Prof. Adriano Teixeira de Souza
  • 2. Foco nos dados (objetos) do sistema, não nas funções  Estruturação do programa é baseada nos dados, não nas funções  As funções mudam mais do que os dados
  • 3. Dois conceitos estão associados a objetos: eles possuem estados, expressos em variáveis/atributos, e comportamentos, que expressam funcionalidades/métodos.  Logo, uma possível definição de objetos pode ser: Um objeto é um artefato de software que é composto por um conjunto de variáveis e os respectivos métodos. Iniciação ao Java – Márcio F. Campos
  • 4. creditar Creditar Saldo Número 875,32 21.342-7 debitar
  • 5. creditar(20) Creditar creditar Creditar creditar Saldo Número Saldo Número 875,32 21.342-7 895,32 21.342-7 debitar debitar
  • 6. Objetos comportamento + características métodos + atributos estado encapsulado
  • 7. Quando nos referenciamos a conceitos, e não a objetos, estamos tratando de classes.  Uma definição para classe é: uma classe é uma referência, um conceito que estabelece quais os métodos e quais as variáveis são comuns a todos os objetos desta classe.
  • 8. Classes agrupamento de objetos do mesmo tipo Telefone Fixo Gradiente Philips Celular Iphone 4s
  • 9. public class NomeDaClasse { CorpoDaClasse } O corpo de uma classe pode conter • atributos • métodos • construtores (inicializadores) • outras classes...
  • 10. public class <nome> { public static void main (String[] args) { <declarações> <comandos> } } Onde, main: método por onde se inicia a execução public: parâmetro de acesso static: indica que main se aplica à classe void: indica que main não retorna um valor
  • 11. public class LeImprime { /** Lê e imprime um string */ public static void main(String[] args) { String nome; nome = Util.readStr(); System.out.println(nome); } }
  • 12. public class Livro { private int anoDePublicacao; private int numeroDePaginas; private String titulo; ... }  cada atributo tem um tipo específico que caracteriza as propriedades dos objetos da classe  int e String denotam os tipos cujos elementos são inteiros e strings
  • 13. Primitivos  Referência ◦ char ◦ classes (String, ◦ int Object, Livro, ◦ boolean Conta, etc.) ◦ double ◦ interfaces ◦ ... ◦ arrays Os elementos de um tipo primitivo são valores, enquanto os elementos de um tipo referência são (referências para) objetos!
  • 14. Não é um tipo primitivo e sim uma classe  Literais: “” “a” “POLI n UPE n”  Operadores: + (concatenação) ex.: “maio ” + “ de ” + 99 = “maio de 99” Note a conversão de inteiro para string Há uma conversão implícita para todos os tipos primitivos
  • 15. Comparação (igualdade) de dois strings a e b String a ... String b ... a.equals(b) ou b.equals(a)  Tamanho de um string a a.length()
  • 16. public class Livro { private int anoDePublicacao; ... } A palavra reservada private indica que os atributos só podem ser acessados (isto é, lidos ou modificados) pelas operações da classe correspondente
  • 17. Java não obriga o uso de private, mas vários autores consideram isto uma pré-condição para programação orientada a objetos  Grande impacto em extensibilidade  Usem private!
  • 18. public class Pessoa { private int anoDeNascimento; private String nome, sobrenome; private boolean casado = false; ... }  vários atributos de um mesmo tipo podem ser declarados conjuntamente  podemos especificar que um atributo deve ser inicializado com um valor específico
  • 19. public class Conta { private String numero; private double saldo; public void creditar(double valor) { saldo = saldo + valor; } ... } Um método é uma operação que realiza ações e modifica os valores dos atributos do objeto responsável pela sua execução
  • 20. parâmetros public class Conta { do método ... public void debitar(double valor) { saldo = saldo - valor; } } tipo de corpo do retorno método Por quê o método debitar não tem como Parâmetro o número da conta?
  • 21. O tipo do valor a ser retornado pelo método  Nome do método  Lista, possivelmente vazia, indicando o tipo e o nome dos argumentos a serem recebidos pelo método Usa-se void para indicar que o método não retorna nenhum valor, apenas altera os valores dos atributos de um objeto
  • 22. public class Conta { private String numero; private double saldo; public String getNumero() { return numero; } public double getSaldo() { return saldo; } ... } Os métodos que retornam valores como resultado usam o comando return
  • 23. Comandos que determinam as ações do método  Estes comandos podem ◦ realizar simples atualizações dos atributos de um objeto ◦ retornar valores ◦ executar ações mais complexas como se comunicar com outros objetos
  • 24. Os objetos se comunicam para realizar tarefas  A comunicação é feita através da troca de mensagens ou chamada de métodos  Cada mensagem é uma requisição para que um objeto execute uma operação específica conta.creditar(45.30) variável contendo referência para nome do objeto método a ser executado
  • 25. concatenação de public class Conta { private String numero; String e conversão private double saldo; de tipos public void imprimirSaldo() { System.out.println("Conta: " + numero + " Saldo: R$" + saldo); } ... } A tela do computador é representada em Java por um objeto especial, armazenado na variável System.out
  • 26. Faça um programa que: ◦ Leia um vetor “turma” de 5 alunos ◦ Cada registro/Objeto de aluno deve ter o número de matrícula do aluno e suas notas de quatro bimestres. ◦ Imprima a lista de matrícula e notas de cada aluno ◦ E finalmente calcule a média das quatro notas e imprima a matricula e a média calcula para cada aluno. Prof. Adriano Teixeira de Souza
  • 27. Escreva um programa para cadastrar 10 produtos de uma empresa. As informações necessárias são: código, nome do produto, quantidade e preço. Deve ser usada uma estrutura para a construção deste cadastro. O programa deverá apresentar um menu de opções semelhante ao apresentado abaixo:  Escolha sua opção: ◦ 1 – Cadastrar produto ◦ 2 – Listar todos ◦ 4 – Sair Prof. Adriano Teixeira de Souza