Dúvidas Variáveis

7 respostas
paloma

Estou com uma dúvida básica :roll:

Uma variável de instância é uma variável cujo valor é específico ao objeto e não à classe. Uma variável de instância em geral possui uma valor diferente em cada objeto membro da classe.

No conceito acima não entendi (ponto de vista da execução do programa) quando fala que "Uma variável de instância em geral possui uma valor diferente em cada objeto membro da classe. "

7 Respostas

Mantu

Tipo assim: A classe vai apenas declarar uma variável de instância, mas cada objeto dessa classe podem ter valores diferentes para essa mesma variável.
Por exemplo, seja a seguinte classe:

public class Cliente{
	private String nomeCompleto;
	
	public Cliente(String nomeCompleto){
		this.nomeCompleto = nomeCompleto;
	}

	public String getNomeCompleto(){
		return nomeCompleto;
	}
}

A classe Cliente declara uma variável de instância (ou também chamada de “campo”, “atributo”, “propriedade”) chamada “nomeCompleto” que armazena um dado do tipo String. Isso quer dizer o quê? É como se a classe dissesse “Olha, todos os objetos que me representam trazem consigo uma String chamada ‘nomeCompleto’, e cada um desses objetos que me representam são responsáveis pelo valor que trazem nesta String”.
Um exemplo prático disso é o seguinte código:

public class TestCliente{
	public static void main(String[] args) {
		Cliente cliente01 = new Cliente("Machado de Assis");
		Cliente cliente02 = new Cliente("Hermann Hesse");
		Cliente cliente03 = new Cliente("Bertolt Brecht");
		
		System.out.println(cliente01.getNomeCompleto());
		System.out.println(cliente02.getNomeCompleto());
		System.out.println(cliente03.getNomeCompleto());
	}
}

Se vc executar esta classe, verá que, embora clinte01, cliente02 e cliente03 sejam todos objetos da classe Cliente, e por isso todos eles tenham a variável de instância (Campo, ou atributo, ou propriedade) “nomeCompleto”, cada um tem o seu próprio valor para esta variável de instância.
Espero não ter confundido mais, hehehehe
qq coisa, poste mais!

Luca

Olá

Cada vez que seu sistema criar (instanciar) um objeto da classe Empregado, atribuirá uma cadeia de caracteres diferente à variável de instância nomeEmpregado.

Atenção: Objetos só existem do ponto de vista da execução do programa.

[]s
Luca

paloma

Entedi sim, a explicação foi excelente, aí vai mais uma dúvida.

Uma variável de classe é uma variável cujo valor é comum a todos os objetos membros da classe. Mudar o valor de uma variável de classe em um objeto membro automaticamente muda o valor para todos os objetos membros.
Uma variável é considerada como de instância por “default”. Para declarar uma variável de classe, acrescenta-se a palavra-chave static. Exemplos:

static int nuhmeroDeInstahnciasDestaClasse;
static int LEFT = 1;

De acordo com o conceito acima, os objetos de uma classe terão o mesmo valor, ñ entendi o sentido :oops:

D

É isso mesmo.
Se vc tem uma classe com uma varíavel de instância X, cada objeto membros dessa classe tera uma referência diferente para essa varíavel X.

Isso quer dizer que cada objeto instanciado terá um espaço reservado na memória (SO PRA ELE) para guardar o valor daquela variável , consequentemente se vc mudar X para um determinado objeto, X não
será afetada para todos os objetos.

Agora se a variável de classe é a variável cujo valor é comum a todos os objetos, é a famosa variável static, static quer dizer que todos os objetos irão compartilhar o mesmo endereço na memória para aquele varíavel.

paloma

Valeu pessoal :lol:

Luca

Olá

Alguns objetos especiais são comuns a todo o sistema. Para estes casos especiais e que geralmente a gente não deve abusar do seu uso, foi criado o conceito de classes, métodos e variáveis estáticas. Uma variável de classe é uma variável estática cujo valor pode ser enxergado globalmente por todo o sistema.

O conceito citado vale apenas e tão somente para o que for declarado como static.

[]s
Luca

leonardofagnani

:smiley:

Criado 5 de julho de 2006
Ultima resposta 5 de jul. de 2006
Respostas 7
Participantes 5