A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Organização do Ambiente de Execução para Linguagens OO Objeto: –Grupo de variáveis de instância, aos quais métodos de instância estão atachados; Variável.

Apresentações semelhantes


Apresentação em tema: "Organização do Ambiente de Execução para Linguagens OO Objeto: –Grupo de variáveis de instância, aos quais métodos de instância estão atachados; Variável."— Transcrição da apresentação:

1 Organização do Ambiente de Execução para Linguagens OO Objeto: –Grupo de variáveis de instância, aos quais métodos de instância estão atachados; Variável de Instância: –Componente de um objeto particular; Método de Instância: –Operação nomeada, ligada a um objeto particular que acessa suas variáveis de instância locais; Classe de Objetos: –Família de objetos com variáveis de instância similares e métodos idênticos;

2 Organização do Ambiente de Execução para Linguagens OO Linguagens OO puras: –Todas as variáveis de instâncias são privadas; –Somente métodos podem acessá-las; –Na prática: existências de variáveis públicas; Chamada de método de instância: –E 0.I(E 1,..., E n ); E 0 : objeto receptor; I: método de instância do objeto; E 1,..., E n : argumentos;

3 Organização do Ambiente de Execução para Linguagens OO Class Point { protected int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public void move(int dx, int dy){ this += dx; this +=dy; } public float area(){ return 0.0; } public float dist(Point that) { int dx = this.x – that.x; int dy = this.y – that.y; return Math.sqrt(dx*dx + dy*dy) } }

4 Organização do Ambiente de Execução para Linguagens OO Point move area dist Classe de Objeto Point constructor (1) method (2) method (3) method (4)

5 Organização do Ambiente de Execução para Linguagens OO class tag x y Classe de Objeto Point Objeto Point

6 Organização do Ambiente de Execução para Linguagens OO class tag x y Classe de Objeto Point Point p = new Point(2,3) Point q = new Point(0,0) p.move(1,1) class tag x y p q

7 Organização do Ambiente de Execução para Linguagens OO class tag x y Classe de Objeto Point q = p class tag x y p q LIXO

8 Organização do Ambiente de Execução para Linguagens OO Chamada a E 0.I(E 1,..., E n ) –Endereço do método é encontrado seguindo-se o ponteiro da classe de objeto (class-tag) e usando o deslocamento apropriado; –Traduzido para I(E 0, E 1,..., E n ); O objeto é passado como argumento para a chamada do método, sendo associado ao nome this; E 0.I(this, a 1,..., a n );

9 Organização do Ambiente de Execução para Linguagens OO Sub-classes: –Seja C uma classe de objetos; –Uma sub-classe S da classe C é uma família de objetos similares aos objetos de C, porém com: Variáveis de instância extra; Métodos adicionais; Métodos substituídos. –Objetos S podem ser tratados como objetos C; Ignorando suas variáveis e métodos particulares; Porém, considerando seus métodos substituídos; –Herança simples;

10 Organização do Ambiente de Execução para Linguagens OO Class Circle extends Point { protected int r; public Circle(int x, int y, int r) { this.x = x; this.y = y; this.r = r; } public void radius(){ return this.r; } public double area(){ double pi = 3.1416; return pi * this.r * this.r; } }

11 Organização do Ambiente de Execução para Linguagens OO Class Box extends Point { protected int w, d; public Box(int x, int y, int w, int d) { this.x = x; this.y = y; this.w = w; this.d = d; } public void width(){ return this.w; } public void depth(){ return this.d; } public double area(){ return (double) (this.w * this.d); } }

12 Organização do Ambiente de Execução para Linguagens OO Circle move area dist Classe de Objeto Circle constructor (5) method (2) method (7) method (4) method (6) radius

13 Organização do Ambiente de Execução para Linguagens OO Box move area dist Classe de Objeto Box constructor (8) method (2) method (11) method (4) method (9) width depth method (10)

14 Organização do Ambiente de Execução para Linguagens OO class tag x y Classe de Objeto Circle Objeto Circle r

15 Organização do Ambiente de Execução para Linguagens OO class tag x y Classe de Objeto Box Objeto Box w d

16 Organização do Ambiente de Execução para Linguagens OO 0 12 4 class tag x y Classe de Objeto Circle int s = 4; Point p = null; Circle c = new Circle(0, 3*s, s); Box b = new Box(0,s,2*s,2*s); 0 4 8 8 class tag x y p c r w d b Classe de Objeto Box

17 Organização do Ambiente de Execução para Linguagens OO 20 32 4 class tag x y Classe de Objeto Circle p = c p.move(20,20) 0 4 8 8 class tag x y p c r w d b Classe de Objeto Box


Carregar ppt "Organização do Ambiente de Execução para Linguagens OO Objeto: –Grupo de variáveis de instância, aos quais métodos de instância estão atachados; Variável."

Apresentações semelhantes


Anúncios Google