Parece fácil,mas não é

Bom dia a todos!
No livro Deitel,lá no começo…me deparei com essa linha:
Scanner input = new Scanner(System.in);
O autor diz que criou uma variável tipo “Scanner” com nome “input” e logo em seguida pelo sinal de igauldade"=" diz que :
= new Scanner(System.in);Foi criado "Um objeto por nome Scanner e que dentro o mesmo tem um objeto padrão de entrada “System.in” que faz leitura de algo que digitamos.
Pergunta:
input é agora uma variavel tipo Scanner correto?
new Scanner é um objeto de quem? Estou confuso na explicação do autor…

grato pela paciencia de todos

Entenda separadamente:

Scanner input

Isso cria uma variável do tipo Scanner. Isso significa que é uma variável capaz de guardar objetos do tipo Scanner. Ela não é um objeto, apenas uma referência. Seu valor, até aqui, ainda é nulo.

new Scanner(System.in);

Esse código cria um objeto do tipo scanner (haverá alocação dos seus dados na memória), e o diz que a origem dos dados que o scanner lê é o objeto System.in. Isso pq o scanner poderia ser associado também a outras coisas, como arquivos de texto mas, no caso, o autor provavelmente está querendo ler coisas do console (System.in).

Agora a linha completa:

Scanner input = new Scanner(System.in);

Significa que uma variável de referência foi criada. E, através do sinal de =, agora está apontando para o objeto do tipo Scanner criado com o new.

Quando se utiliza o comando ‘new’ você esta instanciando a classe com o construtor que ela possue, como o paramentro que você passa é ‘Syste.in’ então você esta passando um entrada do sistema.

Scanner input -> input é uma variável do tipo Scanner, ou seja ela está preparada para referenciar objetos dessa classe.
new Scanner() -> chamada ao construtor de objetos da classe Scanner
System.in -> é apenas um parâmetro passado ao construtor Scanner(parâmetro)

Aproveitando o ganho. Scanner rola somente no windows? Tive problemas com ele no Linux, só não sei dizer se em todas as distribuições.

input é um objeto da classe Scanner do pacote java.util new Scanner(aqui entra o valor do parametro que é o construtor da classe que no caso é “System.in”)

Não deveria. Que tipo de problemas vc teve?

Para ler do console, é importante que se utilize somente o método nextLine().

Muito grato à todos pelo empenho em ajudar-nos principiantes,espero que SE DEUS QUISER e,com ajuda de vocês,possa um dia também com disposição colaborar nesse conceituado forum!!!
Sou técnico em eletronica e fiz alguma programaçoes basicas em asm e C pra microcontroladores PIC.
Estou querendo fazer uma aplicação básica visual(acho que é com o swing)em que eu possa acionar uns 5 botoes na tela e verificar visualmente 5 leds passar da cor verde para vermelho(simulando ligado-vermelho e desligado-verde)
Não consegui achar um desenho que fosse igual a um LED,acho que vou ter que desenha-lo(num momento talvez distante ou perto)
Estou estudando muito,internet,foruns,livros,etc…mas acho que tenho que adotar uma linha de aprendizado organizada.
Meus sinceros agradecimentos.

Ribeiro

“Ainda tenho muito que aprender”

Não deveria. Que tipo de problemas vc teve?

Para ler do console, é importante que se utilize somente o método nextLine().[/quote]

hummm, eu utilizo o nextInt();

Se quiser saber o porque: