Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes [email protected] Aula 14 - O Modelo de Objetos e o Tipo String http://www.ufpa.br/sampaio/bd2003/lpoo Elaborado pelos Professores: Ricardo Santos e Marco Fagundes Marco Fagundes 1 de 19 Roteiro Modelo de Referência a Objetos Modelo de Referência a Objetos - Tipo String Modelo de Referência a Objetos - Tipo Array 2 de 19 Modelo de Referência a Objetos Cada variável de um tipo de classe, não contém o valor do objeto Em vez disso, a variável contém uma referência ou ponteiro, para indicar o local de memória onde o objeto foi armazenado Quando a variável é declarada não se cria o objeto na memória, mas somente reserva-se o local de memória para uma referência a um objeto As instância de objetos devem ser criadas manualmente 3 de 19 Modelo de Referência a Objetos Para ilustrar o modelo de referência a objetos será utilizado o Tipo String. • Strings são objetos especiais na linguagem Java. • Não necessitamos utilizar a palavra new para instanciarmos uma String. • Strings são objetos imutáveis. • As variáveis do tipo String armazenam uma referência para um objeto String ao invés da própria String. 4 de 19 Modelo de Referência a Objetos - Tipo String String t1 = ”Turma1"; Objeto String Anônimo t1 Variável de Referência ”Turma1" 5 de 19 Modelo de Referência a Objetos - Tipo String String t1 = ”Turma1"; String t2 = ”Turma1"; t1==t2 ?? t1.equals(t2) ?? t1 t2 ”Turma1" Variáveis de Referência Java trata todos os objetos String anônimos com o mesmo conteúdo como um objeto String anônimo que tem várias referências 6 de 19 Modelo de Referência a Objetos - Tipo String String t1 = new String(”Turma1”); String t2 = ”Turma1"; t1 t1==t2 ?? t1.equals(t2) ?? ”Turma1" t2 ”Turma1" Variáveis de Referência Objeto String Anônimo 7 de 19 Modelo de Referência a Objetos - Tipo String t1 = t2; t1 t1==t2 ?? t1.equals(t2) ?? ”turma1" Variáveis de Referência t2 Objeto String Anônimo 8 de 19 Modelo de Referência a Objetos - Tipo String t2 = ”Turma2"; t1 Variáveis de Referência ”Turma1" ”Turma2" t2 O objeto String é imutável, mas a referência pode mudar. Caso não exista referência para o objeto o GC destrói 9 de 19 Modelo de Referência a Objetos - Tipo String Os operadores + e += podem ser utilizados com Strings. São utilizados para concatenação de Strings. O resultado desta operação é sempre uma nova String, uma vez que Strings são imutáveis. 10 de 19 Modelo de Referência a Objetos - Tipo String String s = "Java"; s Variável de Referência "Java" 11 de 19 Modelo de Referência a Objetos - Tipo String s += "1.4.1"; s Variável de Referência "Java" "Java1.4.1" 12 de 19 Modelo de Referência a Objetos - Tipo Array No caso de Arrays de tipos primitivos, o array armazena o próprio valor atribuído a seus elementos Por exemplo: int[] numSala; numSala = new int[4]; numSala 0 0 0 0 0 1 2 3 Valores objeto array int [ ] Índices 13 de 19 Modelo de Referência a Objetos - Tipo Array Atribuindo valores para os elementos do array numSala[0]= numSala[1]= numSala[2]= numSala[3]= 101; 102; 103; 104; numSala 101102103104 0 1 2 3 Valores objeto array int [ ] Índices 14 de 19 Modelo de Referência a Objetos - Tipo Array No caso de “Arrays de Objetos”, o que temos na verdade é um array de Referências a Objetos Por exemplo: Turma[] repTurma; repTurma = new Turma[3]; repTurma - - - 0 1 2 15 de 19 Modelo de Referência a Objetos - Tipo Array repTurma[0]= new Turma(“001”,”LPOO”); repTurma[1]= new Turma(“002”,”ABD”);; repTurma[2]= new Turma(“003”,”SBD”);; repTurma - - - 0 1 2 001 LPOO 003 002 SBD ABD 16 de 19 Módulo de Fundamentos Módulo de Fundamentos • Objetivo: Apresentar conceitos básicos e avançados da orientação a objetos, os ambientes Java e Delphi e sua utilização no desenvolvimento de GUIs • Meta: Desenvolver uma aplicação (Java ou Delphi) com uma GUI oferecendo as operações básicas de cadastro (incluir, excluir, alterar e consultar) utilizando uma estrutura de dados para armazenar objetos 17 de 19 Módulo de Fundamentos Conteúdo O que foi visto?? • Conceitos da Orientação a Objetos • Ambiente JDK e Delphi • Construção de GUI em Java e Delphi • Programação Orientada a Eventos • Estrutura de Dados (Array) e Tipo String • Classe, Objeto, Atributos e Métodos • Compartilhamento de Recursos (Dados e Operações) entre Classes • Recursos Avançados de GUI e Criação de Objetos 18 de 19 Módulo de Fundamentos Duração: 13 Aulas • Início: 01/04/2003 • Término: 29/04/2003 Datas Importantes • Entrega do 1º Exercício: 23/04/2003 • Exame Escrito:29/04/2003 • Entrega da 1ª Etapa do Projeto Final: 06/05/2003 19 de 19