Dúvida com Scanner RESOLVIDO

Olá, tudo bem

Eu tenho uma dúvida sobre java, poderiam me ajudar, por favor, é o seguinte, eu tenho o seguinte código abaixo:

import java.util.Scanner;

public class Testes2 { private int N1; private int N2;

Testes2(){ }

public void getN1(int Nu1) { this.N1 = Nu1; } public void getN2(int Nu2) { this.N2 = Nu2; } }

public class OutraClasse extends Testes2 { private int N3;

OutraClasse() { }

public static vois main(String[] args) { Scanner SCA = new Scanner(system.in);

}

Minha dúvida é o seguinte: como eu faço para o usuário digitar algo e o Scanner pegar e colocar o que o usuário digitou dentro do getN1 e do GetN2 ?

Devido os atributos da classe pai serem private, eu tenho que acessa-los com os gets certo ?

como eu faria ?

aguardo e agradeço.

Primeiramente: Use as tags para formatar seu código. Dê uma olhada nesse link: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

O que você quer, seria algo do tipo:

public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    
    System.out.print("Qual é o seu nome? ");
    String nome = in.nextLine();

    System.out.print("Qual sua idade? ");
    int idade = in.nextInt();

    System.out.println("Olá, " + nome +
       ". Você tem " + idade + " anos.");
  }

No lugar da String e do tipo primitivo, use os seus setters. Com certeza, tem melhores maneiras de fazer isso, mas isso resolveria o que você quer.

http://www.devmedia.com.br/aprenda-a-utilizar-o-scanner/1636
Neste link tem um exemplo bem bom de como usar a classe scanner.

Agradeço a ajuda, eu estou com dificuldades em usar os setters, você poderia reescrever o código novamente só que dessa vez com os setters para eu ver como você faz, por favor.

Agradeço a ajuda

Eu não sei formatar o código conforme as regras do guj, desculpem vou postar o código sem formatação:

import java.util.Scanner;

public class Testes2 {
private int N1;
private int N2;

Testes2(){
}

public int getN1(int Nu1) {
    return this.N1;
}
public int getN2(int Nu2) {
    return this.N2;
}
public int setN1(int Nu1) {
    return N1;
}

public static void main(String[] args) {

    Scanner SCA = new Scanner(System.in);
    Testes2 teste = new Testes2();

    
    System.out.println("Digite o valor: ");
    
    teste.setN1(SCA.nextInt());

    System.out.println("O valor de N1 é :");

    teste.getN1(Nu1);
}

}
conforme o código acima, minha dúvida é:

Como eu faço para mostrar na tela o valor contido no atributo N1 ?

eu tentei colocar o teste.getN1(Nu1); mas está dando erro, como eu faço ?

???

Pra formatar o código, basta utilizar as tags [code] e [/code] entre seu código. (retire os asteriscos).

Os seus getters estão errados. Os únicos métodos que vão receber um paramêtro , são os setters. Os getters vão apenas retornar um valor, então não precisa ser passado nenhuma paramêtro pra ele.
Por convenção, variáveis começam com minusculas.

Vou te mostrar um exemplo, quero que aplique no seu código.


private int n1;

public int getN1(){
  return n1;
}

public void setN1(int n1){
  this.n1 = n1;
}

Quando você for setar um atributo, você vai usar o método set. Para recuperar, você vai ter que usar o método get.
Tem um “artigo” da caelum que explica bem o uso dos getters e setters. Segue o link:
http://blog.caelum.com.br/nao-aprender-oo-getters-e-setters/

  [quote]  Scanner SCA = new Scanner(System.in);[/quote]
   [code]Testes2 teste = new Testes2();[/quote]

    
  [code]  System.out.println("Digite o valor: ");[/code]
  [code]  teste.setN1(SCA.nextInt());[/code]
  [code]  System.out.println("O valor de N1 é: ");[/code]

 [code]   teste.getN1();[/code]

a ultima linha deveria mostrar na tela o resultado digitado, mas não aparece nada, por quê ?

Faça dessa maneira:

Teste teste = new Teste();
teste.setN1(SCA.nextInt());

System.out.println("O valor de n1 é: "+teste.getN1());

Você leu os links que te passei? Dá uma olhada, vão te ajudar bastante.

Deu certo obrigado amigo e desculpe o incomodo, vou ler o link que você me passou

vlw colega :slight_smile:

De nada.
Coloque o título do tópico como resolvido. Valeu :smiley: