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

Scanner em classe Java

Olá, uma dúvida me surgiu enquanto eu realizava uma atividade. É possível utilizar um objeto Scanner em método dentro de uma classe? Exemplo de método abaixo.

public String leitura(){
    System.out.println("Digite o valor de X:");
    this.x = sc.nextInt();

    return ("Lido o valor de X: " + this.x);
}
4 respostas

Olá Charlan,

sim, mas vc teria que criar um objeto na implementação do método ou passá-lo como argumento.

Tipo assim? E é considerado uma boa prática?

import java.util.Scanner;

 public class Calculadora{
     Scanner sc = new Scanner(System.in);
     int x;

     public String leitura(){
         System.out.println("Digite o valor de X:");
         this.x = sc.nextInt();

         return ("Lido o valor de X: " + this.x);
    }
}
solução!

Olá Charlan,

dando meus 2¢, particularmente não seguiria por essa caminho. Se entendi, vc está querendo fazer uma classe Calculadora, para efetuar operações matemáticas.

E se na classe, implementasse somente código relacionado às operações. Esse código de leitura vc deixasse no método main.

Porque se futuramente quisesse utilizar outra interface, me referindo a forma de entrada dos dados (web, gui, mobile) vc só trocaria o Scannerdo main por outra entrada.

Ou seja, chame os métodos de Calculadora lá no main passando os valores coletados pelo Scanner.

Boa tarde, entendido! Na verdade a calculadora é só para exemplificar, porém já surgiu a dúvida em outros momentos e não sabia se utilizar o Scanner na classe era possível. Eu já imaginava que não era correto pois nunca vi em nenhum exemplo ele sendo utilizado desta maneira.

Muito obrigado Luciano!