Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

(Ajuda) Como eu sei que "out" é um atributo estático?

Olá pessoal!

Nessa reta final do curso sobre Java e java.lang algo continua nebuloso na minha cabeça. Como eu consigo dizer que o out no System.out.println(); é um atributo estático??

Todo o restante das deduções ficaram claras pra mim. Pelo menos eu acredito que sim (por favor me corrijam se necessário) hahah

  • É um atributo (não é classe pois não começa com letra maiúscula e não é método pq não termina com parenteses);
  • Possui visibilidade pública;
  • Não é do tipo int/double/boolean pois está entre pontos.
  • Ele só pode ser uma referência (não sabemos para onde aponta).

Grato desde já :)

3 respostas
solução!

Olá Pedro, também estou estudando java a pouco tempo, más acredito que consigo tirar a sua dúvida.

Caso você entre na classe System irá perceber que o out é um atributo estático que é do tipo PrintStream, a classe PrintStream possui todos os métodos que o atributo out utiliza, por exemplo o print, println, printf e etc.

Já que o atributo out foi definido como estático na classe System, você pode chamar ele sem precisar iniciar um novo objeto com o new.

Caso o out não fosse um atributo estático você teria que dar new System.out.println() para poder utilizar o atributo out.

Você pode testar isso criando uma classe e definindo um atributo/método do tipo estático dentro da classe, e depois tentando chamar esse método/atributo sem utilizar o new, você ira perceber que só consegue chamar o método/atributo sem o new quando ele é do tipo estático.

Acho que resumindo é isso, você pode saber que atributo ou método é estático caso consiga chamar ele sem ter que inicializar um objeto com o new.

Espero ter ajudado :)

ola

veja o doc do System

https://docs.oracle.com/javase/7/docs/api/java/lang/System.html

la o out esta como static alem de outros campos e metodos que tbm sao static

Muito obrigado, pessoal! Ficou claro para mim agora :D