Palavra-chave public em Java

A palavra-chave public em Java é um modificador de acesso que define a visibilidade mais ampla possível para classes, métodos e variáveis. Membros marcados como public podem ser acessados de qualquer lugar, tanto dentro do mesmo pacote quanto fora dele, sem restrições.

Sintaxe:

public class MinhaClasse {
public int idade; // Variável pública

public void exibirIdade() { // Método público
System.out.println("Idade: " + idade);
}
}

Exemplo de Uso:

public class Pessoa {
public String nome; // Variável pública

public Pessoa(String nome) { // Construtor público
this.nome = nome;
}

public void dizerOla() { // Método público
System.out.println("Olá, meu nome é " + nome);
}
}

public class Main {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa("Andrei");
pessoa.dizerOla(); // Acessando método público
}
}

Características da palavra-chave public:

  • Acessibilidade total: Um membro public pode ser acessado de qualquer lugar, independentemente de onde ele esteja localizado, seja dentro do mesmo pacote ou em um pacote diferente.
  • Visibilidade em todos os pacotes: Classes, métodos e variáveis public podem ser usados por qualquer outra classe em qualquer pacote.
  • Usado para classes principais e bibliotecas: Classes ou membros que devem ser acessados universalmente em um programa Java são geralmente definidos como public.

Regras de visibilidade de public:

  1. Dentro da mesma classe: Membros public podem ser acessados de qualquer lugar da classe.
  2. Dentro do mesmo pacote: Qualquer classe no mesmo pacote pode acessar membros public.
  3. Fora do pacote: Membros public podem ser acessados de qualquer classe, mesmo que estejam em pacotes diferentes.

Exemplo de membros public acessados fora do pacote:

// Arquivo: pacote1/ClasseA.java
package pacote1;

public class ClasseA {
public void mostrarMensagem() {
System.out.println("Mensagem da Classe A");
}
}

// Arquivo: pacote2/ClasseB.java
package pacote2;

import pacote1.ClasseA; // Importando a classe de outro pacote

public class ClasseB {
public static void main(String[] args) {
ClasseA obj = new ClasseA(); // Acessando uma classe pública de outro pacote
obj.mostrarMensagem(); // Acessando o método público
}
}

Comparação com outros modificadores de acesso:

ModificadorDentro da ClasseDentro do PacoteEm SubclassesFora do Pacote
privateSimNãoNãoNão
defaultSimSimNãoNão
protectedSimSimSimNão*
publicSimSimSimSim

Vantagens de usar public:

  • Acessibilidade universal: Membros public podem ser usados em qualquer lugar do projeto ou fora dele, se a classe fizer parte de uma biblioteca pública.
  • Facilita reutilização: Quando uma classe ou método é destinado a ser reutilizado por outras classes ou pacotes, public é a escolha ideal.
  • Necessário para o ponto de entrada (main): O método main de um programa Java deve ser public, já que ele precisa ser acessível pela máquina virtual Java (JVM).

Exemplo do método main público:

public class Programa {
public static void main(String[] args) {
System.out.println("Programa iniciado.");
}
}

Resumo:

  • A palavra-chave public oferece a visibilidade mais ampla, permitindo que membros e classes sejam acessados de qualquer lugar.
  • É frequentemente usado para classes e métodos que devem ser visíveis globalmente, como o método main ou classes de bibliotecas públicas.