Várias classes em um arquivo em Java
- Use as classes aninhadas para ter várias classes em um único arquivo em Java
- Use várias classes não aninhadas em um único 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.