English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste exemplo, vamos aprender a acessar métodos e atributos privados de classes em Java.
Para entender este exemplo, você deve saber o seguinteProgramação JavaTema:
class Test { //Variável privada private int age; private String name; // Inicialização age public void setAge(int age) { this.age = age; } // Inicialização name public void setName(String name) {}} this.name = name; } // Acessar age public int getAge() { return this.age; } // Acessar name public String getName() { return this.name; } } class Main { public static void main(String[] args) { //Criar um objeto Test Test test = new Test(); // Definir o valor da variável privada test.setAge(24); test.setName("w3codebox"); //Obter o valor da variável privada System.out.println("Idade: " + test.getAge()); System.out.println("Nome: " + test.getName()); } }
Resultados de Saída
Idade: 24 Nome: w3codebox
No exemplo acima, temos variáveis privadas chamadas age e name. Aqui, tentamos acessar variáveis privadas de outras classes chamadas Main.
Já usamos métodos getter e setter para acessar variáveis privadas. Aqui,
Métodos setter - setAge() e setName() inicializam as variáveis privadas
Métodos getter - getAge() e getName() retornam os valores das variáveis privadas
import java.lang.reflect.*; class Test { //Variável privada private String name; //Método privado private void display() { System.out.println("O nome é " + name); } } class Main { public static void main(String[] args) { try { //Criar um objeto Test Test test = new Test(); //Criar um objeto chamado obj Class obj = test.getClass(); //Aceder ao variável privado Field field = obj.getDeclaredField("name"); // Tornar o campo privado acessível field.setAccessible(true); //Definir o valor do campo field.set(test, "w3codebox"); //Obter o valor do campo //e converta em string String value = (String)field.get(test); System.out.println("Nome: " + value); //Aceder ao método privado Method[] methods = obj.getDeclaredMethods(); System.out.println("Nome do Método: ", + methods[0].getName()); int modifier = methods[0].getModifiers(); System.out.println("Modificador de Acesso: ", + Modifier.toString(modifier)); } catch(Exception e) { e.printStackTrace(); } } }
Resultados de Saída
Nome: w3codebox Nome do Método: display Modificador de Acesso: private
Neste exemplo, temos um campo privado chamado name e um método privado chamado display(). Aqui, usamos a reflexão para acessar o campo privado e o método da classe Teste.
Para entender a reflexão, acesseJava Reflection (Reflexão).