Campo de clase y campo de instancia en Java

Shikha Chaudhary 12 octubre 2023
  1. la variable local en Java
  2. el parámetro de entrada en Java
  3. el campo de clase en Java
  4. las propiedades del campo de clase en Java
  5. el campo de instancia en Java
  6. las propiedades del campo de instancia en Java
Campo de clase y campo de instancia en Java

Este artículo aprenderá los términos básicos del lenguaje de programación Java, como variables locales, parámetros de entrada, campos de clase y campos de instancia en Java.

la variable local en Java

Una variable cuyo alcance está vinculado al bloque, método o constructor se denomina variable local. Digamos que tenemos un método, testing.

Declaramos una variable val y asignamos 10 a este método. Escriba la instrucción print dentro del bloque main.

public class Experiment {
  public static void testing() {
    int val = 10;
  }

  public static void main(String[] args) {
    // try printing the local variable of the function demo
    System.out.printf("%d", val);
  }
}

Producción :

error: cannot find symbol
      System.out.printf("%d", val);
                              ^
  symbol:   variable val
  location: class Experiment
1 error

Aunque la variable val está presente en este código, obtenemos un error. Aquí, la variable val es una variable local del método testing().

Dado que se define dentro del método testing, su alcance es limitado. Obtenemos un error cuando la instrucción print intenta acceder a esta variable fuera de este ámbito.

Ahora, declara la instrucción print dentro del método testing y llama al método desde el bloque main.

public class Experiment {
  public static void testing() {
    int val = 10;
    System.out.printf("%d", val);
  }

  public static void main(String[] args) {
    // call the method
    testing();
  }
}

Producción :

10

Esta vez, la instrucción print accede a la variable desde su alcance.

Ahora intente averiguar la variable local en este código.

public class Treat {
  public static void main(String[] args) {
    for (int i = 0, i < 1; i++) {
      System.out.println("You will get a Cake if you answer correctly!");
    }
  }
}

La variable i es una variable local. Su ámbito se limita al bucle for.

Tenga en cuenta los siguientes puntos acerca de las variables locales:

  • No podemos usar modificadores de acceso como public, protected y private para declarar variables locales.
  • Estas variables se implementan internamente en el nivel de la pila.

el parámetro de entrada en Java

Parte de la información debe ejecutarse, mientras que otras no. Mira este método welcome.

public class Greet {
  // a function that does not need any parameter or information
  public static void welcome() {
    System.out.println("Hello, we are happy you visited.");
  }
  public static void main(String[] args) {
    // call the function
    welcome();
  }
}

Producción :

Hello, we are happy you visited.

Llamamos al método sin pasar ningún valor en él. No damos ninguna información a este método, y se ejecuta correctamente.

public class Test {
  // a function that needs some information/parameter
  public static void hello(int x) {
    int a;
    System.out.println("Hello, we are happy you visited.");
    if (x < 18) {
      a = 18 - x;
      System.out.printf("Please come back after %d years.", a);
    }
  }
  public static void main(String[] args) {
    int age = 2;

    // call the function
    hello(age);
  }
}

Producción :

Hello, we are happy you visited.
Please come back after 16 years.

El método hola no se ejecutará correctamente si no le pasamos un valor para edad.

El método recibe este valor a través de la variable x definida entre paréntesis. La variable x no es más que un parámetro de entrada o, simplemente, un parámetro.

Un parámetro de entrada o un parámetro en Java es una variable utilizada para definir un método para ayudar a ejecutar el método.

No mezcle parámetros con argumentos. Tienen el mismo valor, pero no son lo mismo.

public class Test {
  // function to add ages
  public static int totalAge(int age1, int age2) {
    return age1 + age2;
  }
  public static void main(String[] args) {
    int a1 = 10;
    int a2 = 12;

    int total = totalAge(a1, a2);
    System.out.println("Sum of ages: " + total);
  }
}

Producción :

Sum of ages: 22

Aquí, edad1 y edad2 son los parámetros de entrada.

el campo de clase en Java

Cualquier variable dentro de una clase puede denominarse field en Java. Todas las variables como price, quantity y name son campos.

Sin embargo, tenga en cuenta que la variable quantity comienza con la palabra clave static. Estos campos con la palabra clave static en su definición se llaman campos de clase en Java.

Los campos de clase también se denominan variables de class o campos estáticos en Java.

class Cake {
  int price;
  static int quantity;
  string name;
}

las propiedades del campo de clase en Java

Los siguientes puntos son un campo de clase:

  • Un campo de clase debe declararse con la palabra clave static.
public static NameOfClass {
  static datatype name_of_variable;
}
  • Muchas instancias de una clase comparten el campo de clase y, por lo tanto, los campos de clase son eficientes en memoria. En palabras muy simples, el valor de un campo de instancia es el mismo para todas las instancias de una clase en Java.
  • Podemos acceder a un campo de clase en Java utilizando una instancia de la clase y el propio nombre de la clase. Tenga en cuenta que no se necesita necesariamente una instancia para acceder a ningún campo estático.
class Cake {
  int price;
  static int quantity = 10;
  String name;

  public static void main(String[] args) {
    // create the object of Cake class
    Cake c1 = new Cake();

    // Access the class field using the object
    System.out.println(c1.quantity);

    // Access the class field using the class
    System.out.println(Cake.quantity);
  }
}

Producción :

10
10

En el ejemplo anterior, accedemos al campo de clase usando un objeto usando el operador punto como este - c1.cantidad. De manera similar, para acceder a la variable por clase, use el nombre de clase Cake.quantity.

el campo de instancia en Java

public class Cake {
  int cost;
  String flavor;

  public Cake(int cost, String flavor) {
    this.cost = cost;
    this.flavor = flavor;
  }

  public int expense() {
    return cost;
  }

  public static void main(String[] args) {
    Cake cake1 = new Cake(1000, "Choco lava");
    Cake cake2 = new Cake(2000, "Pineapple");

    System.out.println(cake1.expense());
    System.out.println(cake2.expense());
  }
}

Producción :

1000
2000

Dentro de la clase Cake, tenemos dos variables: cost y flavor. Creamos cake1 y cake2.

Estas variables que pueden tomar diferentes valores para diferentes objetos se denominan variables de instancia o campos de instancia.

las propiedades del campo de instancia en Java

Los campos de instancia en Java también se denominan variables no estáticas. Aquí hay algunos puntos sobre los campos de instancia.

  • Los campos de instancia no se declaran con la palabra clave static de Java.
public class ClassName {
  datatype variable_name;
}
  • No se comparten con todas las instancias. Cada instancia puede tener su valor único para un campo de instancia en Java.
  • Viste cómo podíamos acceder a un campo de clase con la ayuda de la propia clase. Bueno, esto no es cierto para un campo de instancia en Java. Necesitamos una instancia/objeto para acceder a un campo de instancia en Java.
  • Podemos usar cualquier especificador de acceso con un campo de instancia en Java. Consulte esta documentación para obtener más información sobre los campos en Java.