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!