Difference between revisions of "Construção, Iniciação e Destruição de Objectos"

From Wiki**3

(Construção e iniciação de objectos)
Line 6: Line 6:
 
Construção e iniciação correspondem ao processo de reservar uma zona de memória e nela colocar valores que correspondam à definição de um objecto numa dada linguagem. A forma como as várias linguagens abordam esta questão é, naturalmente, muito dependente da estrutura da própria linguagem: C++, por exemplo, dá ao programador controlo fino sobre aspectos como a origem da zona de memória do objecto; Java, por outro lado, tende a esconder aqueles pormenores do programador.
 
Construção e iniciação correspondem ao processo de reservar uma zona de memória e nela colocar valores que correspondam à definição de um objecto numa dada linguagem. A forma como as várias linguagens abordam esta questão é, naturalmente, muito dependente da estrutura da própria linguagem: C++, por exemplo, dá ao programador controlo fino sobre aspectos como a origem da zona de memória do objecto; Java, por outro lado, tende a esconder aqueles pormenores do programador.
  
Onde há concordância é na sequência de iniciação: um objecto não pode ser utilizado sem primeiro ser iniciado. As várias linguagens dispõem de várias formas, aparentemente diferentes, mas que conduzem ao mesmo resultado prático: o objecto que acabou de ser criado é iniciado de forma a poder ser utilizado pelos métodos da classe a que pertence. Há aspectos desta iniciação (e.g., ponteiros para tabelas de métodos virtuais em C++ ou outros da mesma natureza noutras linguagens, mais ligados a implementações particulares que à semântica do objecto) que não interessa aqui discutir em pormenor, pelo que a discussão incide apenas nos dados disponíveis para o programador.
+
Onde há concordância é na sequência de iniciação: um objecto não pode ser utilizado sem primeiro ser iniciado. As várias linguagens dispõem de várias formas, aparentemente diferentes, mas que conduzem ao mesmo resultado prático: o objecto que acabou de ser criado é iniciado de forma a poder ser utilizado pelos métodos da classe a que pertence. Há aspectos desta iniciação (e.g., ponteiros para tabelas de métodos virtuais em C++ ou outros da mesma natureza noutras linguagens, mais ligados a implementações particulares do que à semântica do objecto) que não interessa aqui discutir em pormenor, pelo que a discussão incide apenas nos dados disponíveis para o programador.
  
 
* Construção e iniciação de objectos em Java;
 
* Construção e iniciação de objectos em Java;

Revision as of 20:18, 1 October 2006

Esta secção está dedicada ao processo de criação, iniciação (definição de valores iniciais) e destruição de objectos.

Construção e iniciação de objectos

Construção e iniciação correspondem ao processo de reservar uma zona de memória e nela colocar valores que correspondam à definição de um objecto numa dada linguagem. A forma como as várias linguagens abordam esta questão é, naturalmente, muito dependente da estrutura da própria linguagem: C++, por exemplo, dá ao programador controlo fino sobre aspectos como a origem da zona de memória do objecto; Java, por outro lado, tende a esconder aqueles pormenores do programador.

Onde há concordância é na sequência de iniciação: um objecto não pode ser utilizado sem primeiro ser iniciado. As várias linguagens dispõem de várias formas, aparentemente diferentes, mas que conduzem ao mesmo resultado prático: o objecto que acabou de ser criado é iniciado de forma a poder ser utilizado pelos métodos da classe a que pertence. Há aspectos desta iniciação (e.g., ponteiros para tabelas de métodos virtuais em C++ ou outros da mesma natureza noutras linguagens, mais ligados a implementações particulares do que à semântica do objecto) que não interessa aqui discutir em pormenor, pelo que a discussão incide apenas nos dados disponíveis para o programador.

  • Construção e iniciação de objectos em Java;
  • Ordem de iniciação de atributos de classes (static) e de objectos.

this

  • Uso como auto-referência
  • Sintaxe especial para chamada a múltiplos construtores

Overloading de Construtores

Exemplos

Exemplos de aplicação. Discussão de aspectos problemáticos e comparação com outras linguagens (C/C++ e PHP).

Destruição de objectos

Discussão de aspectos relacionados com a destruição de objectos: o caso do Java (comparação com outras linguagens). Este tópico foi discutido na Aula 06.