Varias clases en un archivo en Java

Siddharth Swami 12 octubre 2023
  1. Utilice las clases anidadas para tener varias clases en un solo archivo en Java
  2. Utilice varias clases no anidadas en un solo archivo en Java
Varias clases en un archivo en Java

Discutiremos varias clases en un solo archivo en Java en este artículo.

Hay muchas formas de declarar varias clases en un solo archivo. Discutiremos dos formas estándar de implementar esto.

Utilice las clases anidadas para tener varias clases en un solo archivo en Java

En este método, las clases se definen dentro de la clase. Este método nos permite agrupar lógicamente las clases que se van a utilizar en un solo lugar.

Estos se dividen en dos categorías. Primero está la clase anidada estática que se declara estática y la otra es la clase interna del tipo no estático.

El siguiente código demuestra este método.

class Outer_Class {
  // static member
  static int x = 20;

  // instance(non-static) member
  int y = 20;
  private static int outer_private = 40;

  // static nested class
  static class StaticNestedClass {
    void display() {
      System.out.println("outer_x = " + x);
      System.out.println("outer_private = " + outer_private);
    }
  }
}

public class NestedDemo {
  public static void main(String[] args) {
    // accessing a static nested class
    Outer_Class.StaticNestedClass nestedObject = new Outer_Class.StaticNestedClass();

    nestedObject.display();
  }
}

Producción :

outer_x = 20
outer_private = 40

Utilice varias clases no anidadas en un solo archivo en Java

También podemos tener varias clases no anidadas en un solo archivo en Java.

Lo entenderemos mejor con el siguiente ejemplo.

public class Phone {
  Phone() {
    System.out.println("Constructor of phone class.");
  }
  void phone_method() {
    System.out.println("Phone battery is low");
  }
  public static void main(String[] args) {
    Phone p = new Phone();
    Laptop l = new Laptop();
    p.phone_method();
    l.laptop_method();
  }
}
class Laptop {
  Laptop() {
    System.out.println("Constructor of Laptop class.");
  }
  void laptop_method() {
    System.out.println("Laptop battery is low");
  }
}

Producción :

Constructor of phone class.
Constructor of Laptop class.
Phone battery is low
Laptop battery is low

En el ejemplo anterior, el programa consta de dos clases, la primera es la clase Phone y la segunda es la clase Laptop.

Ambas clases tienen constructores y un método para ejecutar una función. Cuando ejecutamos nuestro programa, se crean dos archivos .class para ambas clases. Podemos volver a utilizar el archivo .class sin volver a compilar el código. En la salida, podemos ver que nuestro código se ha ejecutado correctamente.

Artículo relacionado - Java Class