Variáveis de Classe vs Variáveis de Instância


Written on December 26, 2007 – 5:10 pm | by André Gomes

Este é um post algo superficial apenas para tirar algumas dúvidas que às vezes as pessoas têm entre estes dois tipos de variáveis.

No âmbito do paradigma de programação por objectos, as classes que nós criamos podem ter variáveis com vários estados (protectedpublic e private) e de dois tipos diferentes : de classe e de instância.

Variáveis de instância:

São aquelas variáveis que para cada nova instância da respectiva classe, ou seja, cada objecto novo que é criado, têm, à partida, diferentes valores.

Exemplo em Java:

public class Barco

{

// Variaveis de instancia


private String matricula;
private String bandeira;
private String nomeComandante;
private float comprimento;
private float tonelagem;


}

À partida todas estas variáveis, para cada novo Barco que é criado, terão valores diferentes, logo justifica-se que sejam variáveis de instância.

Variáveis de classe:

São aquelas variáveis que vão ter um valor fixo para todas as instâncias da classe que forem sendo criadas. Quando se alterar o seu valor numa classe qualquer o valor é alterado em todas as intâncias dessa mesma classe.

Exemplo em Java:

public class Barco

{

// Variaveis de classe

private static float taxaBarco;

// Variaveis de instancia

private String matricula;
private String bandeira;
private String nomeComandante;
private float comprimento;
private float tonelagem;

}

Como a taxa é um valor fixo, é justo que se torne numa variável de classe pois assim todas as instâncias de Barco criadas terão a mesma taxa aplicada ao barco.

You can find this post, in english language, here.



Veja também:

Tags: ,

  1. 2 Responses to “Variáveis de Classe vs Variáveis de Instância”

  2. By David on Dec 26, 2007 | Reply

    Só umas pequenas notas sobre os termos utilizados: tipicamente dá-se o nome de campo (ou atributo, mas isso gera confusão com outra coisa) aos membros de uma classe que representam estado. Para além disso, os atributos (nota-se aqui a tal confusão) protected/private/public/etc definem a acessibilidade do membro, não o estado. O estado de um campo é o valor que este tem num determinado momento da execução do programa.

  3. By Heitor on Mar 1, 2008 | Reply

    este site e muito bom, eu gostei muito ele e muito pratico e muito direto nos assuntos.

Post a Comment