La diferencia entre class variables
y instance
variables, es simplemente una cuestión de who knows what?
.
Un instance variable
sólo es conocida (= obligado ) para que el hormigón ejemplo - de ahí el nombre.
public class Person {
private String firstName;
private String lastName;
[...]
}
La definición de una clase es como un plano para construir objetos concretos . Quizás este punto te confunda un poco. Pero escribiéndolo de esta manera, cada variable estaría vinculada a su objeto concreto: por ejemplo, cada persona tiene su propio nombre
A, class variable
por otro lado, es, como su nombre lo indica, conocido por todos y cada uno de los miembros de una clase; o técnicamente: es conocido / vinculado a nivel de clase . El ejemplo típico es un contador de cuántos objetos ha creado, aunque es un ejemplo muy problemático; pero eso no importa en esta etapa temprana.
public class Person {
private String firstName;
private String lastName;
[...]
static int numberOfPersons = 0
}
numberOfPersons
se declara static
cuál es la palabra clave para distingush entre class variables
y instance variabes
. La variable se declara como las demás dentro de la definición de clase. Pero la static
palabra clave indica que es diferente.
firstName
, lastName
son variables de instancia y están vinculadas a esa instancia concreta
numberOfPersons
está vinculado a la clase, de modo que cada instancia pueda acceder a esta variable.
tl; dr
El lugar donde se definen las variables es la definición de clase.
Las variables de clase se conocen en / vinculadas al nivel de clase, es decir, cada instancia concreta tiene acceso a ella. Para definir una variable de clase, usa la palabra clave static
.
Las variables de instancia solo se conocen a nivel de instancia. Los define sin la static
palabra clave.
Más documentación para Java está aquí