Dúvida Sobre Classe em JAVA

Bom dia Pessoal,

Estou aprendendo JAVA e estou na parte de orientação a OBJETOS, na aula o professor citou em uma das aulas o seguinte código.

Public class Conta{
public int numero;
public String nome;
public double saldo;
}

O código tem mais linhas porém estou com dúvida nesta parte, ele criou a CLASS e criou estas linhas como PUBLIC, não estou entendendo o porque ele fez isso.

Alguém pode me ajudar?

Isto se chama “encapsulamento”, e define os niveis de acesso que a aplicação terá nos objetos.

public: Todos podem acessar os objetos da aplicação.
protected: Os objetos podem ser acessados na classe pai e nas classes filhas (herança).
private: Os objetos so podem ser acessados pela propria classe.

O public quer dizer que o seus atributos são publicos, ou seja, pode ser acessado de qualquer outra classe.
No exemplo abaixo estou modificando os valores por outra classe

public class Principal{
    public static void main(String[] args) {
        Conta conta = new Conta();
        conta.numero = 453;
        conta.saldo = 2;
    }
}

Se os atributos fossem private (privado) isso não seria acontecer, pois private os atributos só poderiam ser acessados na própria classe.

Protected: Só complementando o que o lucasgarcez disse, tem que estar no mesmo package(pacote)

Legal, então em todas as CLASS que eu criar terei que fazer dessa forma?

Se voce for um programador “preguiçoso”, poderá deixar tudo como public que a aplicação vai funcionar.
Recomendo usar os outros atributos apenas se tiver o conhecimento necessário para saber onde aplicar, quando e porque (algo que voce vai aprender com experiencia, tempo e estudo).

Legal, Lucas e Mike. Muito obrigado pelas orientações, agora consegui entender melhor como funciona.