O que significa isso: AlertDialog.Builder alerta; ? Como funciona esse negócio?

Eu entrei na classe AlertDialog, e esse Builder é uma classe estática dentro da outra classe. Pra que isso? Como funciona isso? Os caras adoram complicar. Java me surpreendendo cada vez mais.

Até o próprio System.out.println();

“out” é um atributo da classe “System”? Mas ele não é um objeto, mesmo assim tem métodos? Como assim? kkkk. Println é da classe PrintStream, mas não da para fazer: PrintStream.println();

Builder é um padrão de projeto utilizado para criação de objetos.
Uma classe dentro da outra é chamado de inner class, é uma boa prática para classes que não fazem sentido existirem fora da classe que os contém.

Claro que é um objeto.
É um objeto do tipo PrintStream.

Os métodos da classe PrintStream não são estáticos, por isso você não pode fazer PrintStream.println()
Você precisa de um objeto do tipo PrintStream para invocar os métodos, como por exemplo o System.out.

1 curtida