Várias classes em um arquivo em Java

Siddharth Swami 12 outubro 2023
  1. Use as classes aninhadas para ter várias classes em um único arquivo em Java
  2. Use várias classes não aninhadas em um único arquivo em Java
Várias classes em um arquivo em Java

Discutiremos várias classes em um único arquivo em Java neste artigo.

Existem muitas maneiras de declarar várias classes em um único arquivo. Estaremos discutindo duas maneiras padrão de implementar isso.

Use as classes aninhadas para ter várias classes em um único arquivo em Java

Neste método, as classes são definidas dentro da classe. Este método nos permite agrupar logicamente as classes que devem ser usadas apenas em um lugar.

Estes são divididos em duas categorias. A primeira é a classe aninhada estática que é declarada como estática e a outra é a classe interna do tipo não estático.

O código a seguir demonstra esse 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();
  }
}

Resultado:

outer_x = 20 outer_private = 40

Use várias classes não aninhadas em um único arquivo em Java

Também podemos ter várias classes não aninhadas em um único arquivo em Java.

Vamos entender isso melhor com o exemplo a seguir.

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");
  }
}

Resultado:

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

No exemplo acima, o programa consiste em duas classes, a primeira é a classe Phone e a segunda é a classe Laptop.

Ambas as classes possuem construtores e um método para executar uma função. Quando executamos nosso programa, dois arquivos .class são criados para ambas as classes. Podemos reutilizar o arquivo .class novamente sem recompilar o código. Na saída, podemos ver que nosso código foi executado com sucesso.

Artigo relacionado - Java Class