Colegas da lista,
 
Alguém saberia me dizer qual a diferença entre definir a classe Teste abaixo como public ou deixar como package (retirando a palavra public)?
 
O programa funciona bem das duas formas. A única diferença que percebi é que o nome do arquivo que contém este código tem que ser igual ao nome da classe definida como public. Isto é, o arquivo tem que se chamar Teste.java. Mas se não houver uma classe definida como public então o arquivo pode ter qualquer nome e vai funcionar normalmente.
 
Por outro lado, para uma classe acessar um método de outra, basta que este método seja public. Não é preciso que a classe que contém o método seja public. Então para que serve o "access modifier" public quando se refere a classes?
 

import javax.swing.*;
 
class FramePrincipal extends JFrame
{   public FramePrincipal()
    {   setTitle("Meu Primeiro Frame");
        setSize(400, 200);
    }
}
 
public class Teste
{   public static void main(String[] args)
    {   JFrame frame = new FramePrincipal();
        frame.show(); 
    }
}
 

Obrigado,
 
Carlos

Responder a