Prévia do material em texto
Unidade IV: Tipos Abstratos de Dados Flexíveis - Introdução Instituto de Ciências Exatas e Informática Departamento de Ciência da Computação • Mostre a execução do programa abaixo ---------------------------- Algoritmos e Estruturas de Dados II (2) Exercício En de re ço s de m em ór ia N om e da s va riá ve is Memória c1 c2? ? ... Cliente c1 = new Cliente(1, “aa”); Cliente c2 = null; c2 = c1; c2 = null; c2 = c1.clone(); ... Representação gráfica Tipos Abstratos de Dados - Introdução • Mostre a execução do programa abaixo ---------------------------- Algoritmos e Estruturas de Dados II (3) 33h 1 / aa 33h c1 ... Cliente c1 = new Cliente(1, “aa”); Cliente c2 = null; c2 = c1; c2 = null; c2 = c1.clone(); ... c1 1 aa Exercício Tipos Abstratos de Dados - Introdução • Mostre a execução do programa abaixo ---------------------------- Algoritmos e Estruturas de Dados II (4) 33h null 1 / aa 33h c1 c2 ... Cliente c1 = new Cliente(1, “aa”); Cliente c2 = null; c2 = c1; c2 = null; c2 = c1.clone(); ... c1 c2 1 aa Exercício Tipos Abstratos de Dados - Introdução • Mostre a execução do programa abaixo ---------------------------- Algoritmos e Estruturas de Dados II (5) 33h 33h 1 / aa 33h c1 c2 ... Cliente c1 = new Cliente(1, “aa”); Cliente c2 = null; c2 = c1; c2 = null; c2 = c1.clone(); ... c1 1 aa c2 Exercício Tipos Abstratos de Dados - Introdução • Mostre a execução do programa abaixo ---------------------------- Algoritmos e Estruturas de Dados II (6) 33h null 1 / aa 33h c1 c2 ... Cliente c1 = new Cliente(1, “aa”); Cliente c2 = null; c2 = c1; c2 = null; c2 = c1.clone(); ... c1 c2 1 aa Exercício Tipos Abstratos de Dados - Introdução • Mostre a execução do programa abaixo ---------------------------- Algoritmos e Estruturas de Dados II (7) 33h 51h 1 / aa 1 / aa 33h c1 c2 51h ... Cliente c1 = new Cliente(1, “aa”); Cliente c2 = null; c2 = c1; c2 = null; c2 = c1.clone(); ... c1 c2 1 aa 1 aa Exercício Tipos Abstratos de Dados - Introdução • Crie uma classe célula contendo os atributos elemento (inteiro) e prox (apontador para outra célula) ---------------------------- Algoritmos e Estruturas de Dados II (8) Exercício Tipos Abstratos de Dados - Introdução • Crie uma classe célula contendo os atributos elemento (inteiro) e prox (apontador para outra célula) ---------------------------- Algoritmos e Estruturas de Dados II (9) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução • Crie uma classe célula contendo os atributos elemento (inteiro) e prox (apontador para outra célula) ---------------------------- Algoritmos e Estruturas de Dados II (10) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução A boa prática da orientação por objetos recomenda que todos os atributos de uma classe sejam privados e tenham os métodos públicos de get e set!!! • Crie uma classe célula contendo os atributos elemento (inteiro) e prox (apontador para outra célula) ---------------------------- Algoritmos e Estruturas de Dados II (11) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução • Mostre o que acontece se outra classe tiver o comando Celula tmp = new Celula(3). ---------------------------- Algoritmos e Estruturas de Dados II (12) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução • Mostre o que acontece se outra classe tiver o comando Celula tmp = new Celula(3). ---------------------------- Algoritmos e Estruturas de Dados II (13) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução • Mostre o que acontece se outra classe tiver o comando Celula tmp = new Celula(). ---------------------------- Algoritmos e Estruturas de Dados II (14) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução • Mostre o que acontece se outra classe tiver o comando Celula tmp = new Celula(). ---------------------------- Algoritmos e Estruturas de Dados II (15) class Celula { public int elemento; public Celula prox; public Celula() { this(0); } public Celula (int x) { this.elemento = x; this.prox = null; } } Exercício Tipos Abstratos de Dados - Introdução