3
Linguagens de Programação
ESPM
14
Linguagens de Programação
ESPM
5
Linguagens de Programação
ESPM
42
Linguagens de Programação
ESPM
20
Linguagens de Programação
ESPM
3
Linguagens de Programação
ESPM
19
Linguagens de Programação
ESPM
1
Linguagens de Programação
ESPM
1
Linguagens de Programação
ESPM
2
Linguagens de Programação
ESPM
Texto de pré-visualização
Laboratório de Programação Prof Dr Antonio Marcos SELMINI antonioselminiespmbr Tipos Abstratos de Dados Tipos de Dados O que são Tipos de Dados Tipos de Dados representam um conjunto de valores e uma coleção de operações que atuam sobre esses valores Exemplo podemos pensar no conjunto dos números inteiros 2 1 0 1 2 e das operações matemáticas que podem atuar sobre o conjunto dos inteiros Tipos de Dados Tipos de Dados Primitivos ou simples são grupos de valores indivisíveis Tipos de Dados Primitivos ou simples Numérico Inteiro Literal Caractere Lógico booleano Real 24 0 12 2401 00008 1331 qual aBcDEFg 123 A a V F SimNão 10 truefalse Tipos de Dados Tipos de Dados Primitivos ou simples no Java Numérico Inteiro Caractere Lógico booleano Real byte short int long float double char boolean Tipos Abstratos de Dados Em algumas aplicações apenas o conjunto dos tipos primitivos definidos em uma linguagem de programação não é suficiente Em geral as linguagens de programação permitem a criação de novos tipos ou seja tipos de dados definidos pelo desenvolvedor que são chamados de tipos estruturados ou tipos abstratos de dados TAD Tipos estruturados também podem ser chamados de registros em algumas linguagens mais antigas Tipos de dados estruturados em geral definem uma coleção de valores simples ou um agregado de tipos diferentes Tipos de Abstratos de Dados Exemplos Tipo abstrato Aluno nome RA curso período CPF RG endereço et Tipo abstrato Professor nome CPF RG endereço titulação carga horária et Tipo abstrato Carro marca modelo cor ano valor etc Tipo abstrato Conta Bancária número agência saldo senha TAD no Java Para definirmos TAD no Java é necessário trabalhar com o conceito de classe e objeto A classe é responsável por definir o conjunto de valores e as operações que serão realizadas nos valores Ao definir uma classe na linguagem de programação Java estamos definindo um TAD Como a classe define um TAD podemos utilizála para declarar variáveis desse novo tipo criado Estrutura de uma classe no Java O conjunto de variáveis e métodos de uma classe é chamado de membros da classe Uma classe pode ter 3 tipos de membros o que está definido na classe Variáveis atributos também chamada de variáveis de instância Métodos definem o código executável da classe e o comportamento dos objetos Classes uma classe pode ter outros classes dentro dela não é muito comum declaração de pacotes public class NomeDaClasse declaração de variáveis variáveis de instância atributos declaração dos métodos public pode ser omitido será tratado em outro momento Estrutura de uma classe no Java public class Pessoa String nome int idade é uma classe pública class Pessoa String nome int idade não é uma classe pública ou Atributos ou variáveis de instância variáveis declaradas na classe Instanciação de classes Instanciar uma classe significa criar novos objetos a partir da classe Todo objeto instanciado pertence a uma classe ou seja o tipo de um objeto é sempre uma determinada classe A sintaxe para a instanciação de um objeto é NomeDaClasse nomeDaVariável new NomeDaClasse Instanciação de classes Exemplo de instanciação gerando um objeto de uma classe chamada Pessoa ou instanciar a classe Pessoa Pessoa p new Pessoa nome da classe tipo de dado variável variável de referência operador de instanciação nome da classe método construtor declaração de variável variável p do tipo Pessoa instanciação do objeto alocação de memória e construção do objeto Instanciação de classes O processo de instanciação pode ser dividido em duas partes NomeDaClasse nomeDaVariável nomeDaVariável new nomeDaClasse Pessoa p apenas a declaração de uma variável o objeto ainda não existe p new Pessoa neste momento o objeto passa a existir na memória Atributos da classe Também conhecidos como dados membros ou variáveis de instância Os atributos são variáveis que devem ser declaradas dentro das classes fora dos métodos Exemplo atributos ou variáveis de instância public class Pessoa String nome int idade Manipulação de objetos Não se esqueça que uma classe somente define os atributos e métodos de um conjunto de objetos Para utilizar os atributos é necessário criar um ou mais objetos da classe Cada objeto contém uma cópia de todos os atributos da classe Os atributos armazenam os dados características de cada um dos objetos operador ponto é utilizado para acessar atributos e métodos variávelDeReferênciaatributo Manipulação de objetos new operador de instanciação memória utilizada pelo programa objeto alocado na memória Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome null idade 0 Pessoa Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome null idade 0 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome null idade 0 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória através da variável pessoa o objeto é acessado pessoanome maria Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome maria idade 0 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória através da variável pessoa o objeto é acessado pessoanome maria pessoaidade 20 Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome maria idade 20 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória através da variável pessoa o objeto é acessado pessoanome maria pessoaidade 20 Manipulação de objetos Não se esqueça que os membros atributos e métodos de um objeto só podem ser acessados se o objeto for instanciado criado Pessoa pessoa pessoanome Antonio pessoaidade 35 Pessoa pessoa new Pessoa pessoanome Antonio pessoaidade 35 c declaração da variável de referência Não há erros nessa linha Como o objeto não foi instanciado a variável de referência não está referenciando nenhum objeto na memória NullPointerException objeto instanciado e atribuído para a variável de referência c Sem erros porque a variável de referência está referenciado o objeto na memória Pilha e heap As várias partes métodos variáveis e objetos dos programas Java residem em um dos dois seguintes lugares da memória a pilha ou o heap As variáveis de instância e os objetos residem no heap As variáveis locais e os métodos residem na pilha Exemplo public class Dog String nome variável de instância public static void mainString args Dog d variável local variável de referência d new Dog Pilha e heap public class Cachorro String nome public static void mainString args Cachorro c c new Cachorro pilha args c heap objeto Cachorro nome objeto String Tipo primitivo x Tipo referência A linguagem de programação Java apresenta basicamente dois tipos de dados primitivo e referência Tipo primitivo tipos básicos da linguagem int float double char long boolean byte short São armazenados em memória na pilha Tipo de referência não armazenam tipos primitivos mas sim referência endereço de um objeto na memória heap String int Pessoa Aluno Professor etc Objetos são armazenados no heap A variável de referência é armazenada na pilha mas os objetos são armazenados no heap Tipo primitivo x Tipo referência Pessoa pessoa1 new Pessoa pessoa1nome antonio pessoa1idade 35 Pessoa pessoa2 new Pessoa pessoa2nome antonio pessoa2idade 35 pessoa1 referência objeto pessoa pessoa2 referência objeto pessoa pessoa1nome antonio pessoa1idade 35 pessoa2nome antonio pessoa2idade 35 ifpessoa1 pessoa2 true ou false É false As variáveis pessoa1 e pessoa2 referenciam posições de memória diferentes Tipo primitivo x Tipo referência Pessoa pessoa1 new Pessoa Pessoa pessoa2 new Pessoa pessoa1 referência objeto pessoa pessoa2 referência objeto pessoa a variável pessoa1 armazena o mesmo conteúdo da variável pessoa2 ou seja a variável pessoa1 passa a referenciar o objeto referenciado por pessoa2 o que acontece nessa instrução pessoa1 pessoa2 Referências CORNELL G HORSTMANN C A Y S Core Java Volume 1 Fundamentos 8ª ed Editora Pearson 2010 DEITEL H DEITEL P Java Como Programar 10ª ed Editora Pearson 2010 Referências COELHO A Java com orientação a objetos 1ª ed Editora LCM 2012 Bibliografia
3
Linguagens de Programação
ESPM
14
Linguagens de Programação
ESPM
5
Linguagens de Programação
ESPM
42
Linguagens de Programação
ESPM
20
Linguagens de Programação
ESPM
3
Linguagens de Programação
ESPM
19
Linguagens de Programação
ESPM
1
Linguagens de Programação
ESPM
1
Linguagens de Programação
ESPM
2
Linguagens de Programação
ESPM
Texto de pré-visualização
Laboratório de Programação Prof Dr Antonio Marcos SELMINI antonioselminiespmbr Tipos Abstratos de Dados Tipos de Dados O que são Tipos de Dados Tipos de Dados representam um conjunto de valores e uma coleção de operações que atuam sobre esses valores Exemplo podemos pensar no conjunto dos números inteiros 2 1 0 1 2 e das operações matemáticas que podem atuar sobre o conjunto dos inteiros Tipos de Dados Tipos de Dados Primitivos ou simples são grupos de valores indivisíveis Tipos de Dados Primitivos ou simples Numérico Inteiro Literal Caractere Lógico booleano Real 24 0 12 2401 00008 1331 qual aBcDEFg 123 A a V F SimNão 10 truefalse Tipos de Dados Tipos de Dados Primitivos ou simples no Java Numérico Inteiro Caractere Lógico booleano Real byte short int long float double char boolean Tipos Abstratos de Dados Em algumas aplicações apenas o conjunto dos tipos primitivos definidos em uma linguagem de programação não é suficiente Em geral as linguagens de programação permitem a criação de novos tipos ou seja tipos de dados definidos pelo desenvolvedor que são chamados de tipos estruturados ou tipos abstratos de dados TAD Tipos estruturados também podem ser chamados de registros em algumas linguagens mais antigas Tipos de dados estruturados em geral definem uma coleção de valores simples ou um agregado de tipos diferentes Tipos de Abstratos de Dados Exemplos Tipo abstrato Aluno nome RA curso período CPF RG endereço et Tipo abstrato Professor nome CPF RG endereço titulação carga horária et Tipo abstrato Carro marca modelo cor ano valor etc Tipo abstrato Conta Bancária número agência saldo senha TAD no Java Para definirmos TAD no Java é necessário trabalhar com o conceito de classe e objeto A classe é responsável por definir o conjunto de valores e as operações que serão realizadas nos valores Ao definir uma classe na linguagem de programação Java estamos definindo um TAD Como a classe define um TAD podemos utilizála para declarar variáveis desse novo tipo criado Estrutura de uma classe no Java O conjunto de variáveis e métodos de uma classe é chamado de membros da classe Uma classe pode ter 3 tipos de membros o que está definido na classe Variáveis atributos também chamada de variáveis de instância Métodos definem o código executável da classe e o comportamento dos objetos Classes uma classe pode ter outros classes dentro dela não é muito comum declaração de pacotes public class NomeDaClasse declaração de variáveis variáveis de instância atributos declaração dos métodos public pode ser omitido será tratado em outro momento Estrutura de uma classe no Java public class Pessoa String nome int idade é uma classe pública class Pessoa String nome int idade não é uma classe pública ou Atributos ou variáveis de instância variáveis declaradas na classe Instanciação de classes Instanciar uma classe significa criar novos objetos a partir da classe Todo objeto instanciado pertence a uma classe ou seja o tipo de um objeto é sempre uma determinada classe A sintaxe para a instanciação de um objeto é NomeDaClasse nomeDaVariável new NomeDaClasse Instanciação de classes Exemplo de instanciação gerando um objeto de uma classe chamada Pessoa ou instanciar a classe Pessoa Pessoa p new Pessoa nome da classe tipo de dado variável variável de referência operador de instanciação nome da classe método construtor declaração de variável variável p do tipo Pessoa instanciação do objeto alocação de memória e construção do objeto Instanciação de classes O processo de instanciação pode ser dividido em duas partes NomeDaClasse nomeDaVariável nomeDaVariável new nomeDaClasse Pessoa p apenas a declaração de uma variável o objeto ainda não existe p new Pessoa neste momento o objeto passa a existir na memória Atributos da classe Também conhecidos como dados membros ou variáveis de instância Os atributos são variáveis que devem ser declaradas dentro das classes fora dos métodos Exemplo atributos ou variáveis de instância public class Pessoa String nome int idade Manipulação de objetos Não se esqueça que uma classe somente define os atributos e métodos de um conjunto de objetos Para utilizar os atributos é necessário criar um ou mais objetos da classe Cada objeto contém uma cópia de todos os atributos da classe Os atributos armazenam os dados características de cada um dos objetos operador ponto é utilizado para acessar atributos e métodos variávelDeReferênciaatributo Manipulação de objetos new operador de instanciação memória utilizada pelo programa objeto alocado na memória Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome null idade 0 Pessoa Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome null idade 0 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome null idade 0 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória através da variável pessoa o objeto é acessado pessoanome maria Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome maria idade 0 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória através da variável pessoa o objeto é acessado pessoanome maria pessoaidade 20 Manipulação de objetos new operador de instanciação Método construtor memória utilizada pelo programa objeto alocado na memória nome maria idade 20 Pessoa declaração da variável de referência Pessoa pessoa pessoa pessoa referencia o objeto na memória através da variável pessoa o objeto é acessado pessoanome maria pessoaidade 20 Manipulação de objetos Não se esqueça que os membros atributos e métodos de um objeto só podem ser acessados se o objeto for instanciado criado Pessoa pessoa pessoanome Antonio pessoaidade 35 Pessoa pessoa new Pessoa pessoanome Antonio pessoaidade 35 c declaração da variável de referência Não há erros nessa linha Como o objeto não foi instanciado a variável de referência não está referenciando nenhum objeto na memória NullPointerException objeto instanciado e atribuído para a variável de referência c Sem erros porque a variável de referência está referenciado o objeto na memória Pilha e heap As várias partes métodos variáveis e objetos dos programas Java residem em um dos dois seguintes lugares da memória a pilha ou o heap As variáveis de instância e os objetos residem no heap As variáveis locais e os métodos residem na pilha Exemplo public class Dog String nome variável de instância public static void mainString args Dog d variável local variável de referência d new Dog Pilha e heap public class Cachorro String nome public static void mainString args Cachorro c c new Cachorro pilha args c heap objeto Cachorro nome objeto String Tipo primitivo x Tipo referência A linguagem de programação Java apresenta basicamente dois tipos de dados primitivo e referência Tipo primitivo tipos básicos da linguagem int float double char long boolean byte short São armazenados em memória na pilha Tipo de referência não armazenam tipos primitivos mas sim referência endereço de um objeto na memória heap String int Pessoa Aluno Professor etc Objetos são armazenados no heap A variável de referência é armazenada na pilha mas os objetos são armazenados no heap Tipo primitivo x Tipo referência Pessoa pessoa1 new Pessoa pessoa1nome antonio pessoa1idade 35 Pessoa pessoa2 new Pessoa pessoa2nome antonio pessoa2idade 35 pessoa1 referência objeto pessoa pessoa2 referência objeto pessoa pessoa1nome antonio pessoa1idade 35 pessoa2nome antonio pessoa2idade 35 ifpessoa1 pessoa2 true ou false É false As variáveis pessoa1 e pessoa2 referenciam posições de memória diferentes Tipo primitivo x Tipo referência Pessoa pessoa1 new Pessoa Pessoa pessoa2 new Pessoa pessoa1 referência objeto pessoa pessoa2 referência objeto pessoa a variável pessoa1 armazena o mesmo conteúdo da variável pessoa2 ou seja a variável pessoa1 passa a referenciar o objeto referenciado por pessoa2 o que acontece nessa instrução pessoa1 pessoa2 Referências CORNELL G HORSTMANN C A Y S Core Java Volume 1 Fundamentos 8ª ed Editora Pearson 2010 DEITEL H DEITEL P Java Como Programar 10ª ed Editora Pearson 2010 Referências COELHO A Java com orientação a objetos 1ª ed Editora LCM 2012 Bibliografia