Como pegar a entrada de usuário para colocar em um atributo?

    dado.nome = "Santanas";

gostaria de modificar com a entrada de usuário

     Scanner r = new Scanner(System.in); 

fiz

dado.nome = r.nextLine()

deu error

Código


import java.util.Scanner;
public class Aluno {
    
    public String nome;
    public int matricula;
    public String curso;

    public String disciplina1; 
    public Double nota1;

    public String disciplina2;
    public Double nota2;
    
    public String disciplina3;
    public Double nota3;
     
public static void main(String[] args) {

        Aluno dado = new Aluno();
        
        Scanner r = new Scanner(System.in); 
        
        dado.matricula = 12356;
        dado.nome = "Santanas"; 
        dado.curso = "ADS";
        dado.disciplina1 = "Java";
        dado.nota1 = 4.1;
        dado.nota2 = 5.1;
        dado.disciplina3 = "CSS";        
        dado.disciplina2 = "PHP";
        dado.nota3 = 6.1;

        System.out.print("\n Inserir Matricula : " + dado.matricula + "\n");
        System.out.print(" --------------------------------------------------------- \n");
		System.out.print("\n Inserir Curso : " + dado.curso + "\n");
		System.out.print(" --------------------------------------------------------- \n");        
        System.out.print("\n Inserir Nome : " + dado.nome + "\n");
        System.out.print(" --------------------------------------------------------- \n");
		System.out.print("\n Inserir Disciplina 1 : " + dado.disciplina1 + "\n");
        System.out.print(" --------------------------------------------------------- \n");
        System.out.print("\n Inserir Nota 1 : " + dado.nota1 + "\n");
        System.out.print(" --------------------------------------------------------- \n");
		System.out.print("\n Inserir Disciplina 2 : " + dado.disciplina2 + "\n");
		System.out.print(" --------------------------------------------------------- \n");       
        System.out.print("\n Inserir Nota 2 : " + dado.nota2 + "\n");
        System.out.print(" --------------------------------------------------------- \n");
		System.out.print("\n Inserir Disciplina 3 : " + dado.disciplina3 + "\n");
		System.out.print(" --------------------------------------------------------- \n");        
        System.out.print("\n Inserir Nota 3 : " + dado.nota3 + "\n");
        System.out.print(" --------------------------------------------------------- \n");


/*

		if (data.disciplina1 >= 7) { 
			System.out.print("\n . Aluno : " + " foi aprovado na disciplina " + data.disciplina1 + "\n"); 
	      }
	    
	    if(data.disciplina1 < 7) { 
	     	System.out.print("\n . Aluno : " + " foi reprovado na disciplina " + data.disciplina1 + "\n");

	   } 

		if (data.disciplina2 >= 7) { 
			System.out.print("\n . Aluno : " + " foi aprovado na disciplina " + data.disciplina2 + "\n"); 
	      }
	    
	    if(data.disciplina2 < 7) { 
	     	System.out.print("\n . Aluno : " + " foi reprovado na disciplina " + data.disciplina2 + "\n");

	   } 

		if (data.disciplina3 >= 7) { 
			System.out.print("\n . Aluno : " + " foi aprovado na disciplina " + data.disciplina3 + "\n"); 
	      }
	    
	    if(data.disciplina3 < 7) { 
	     	System.out.print("\n . Aluno : " + " foi reprovado na disciplina " + data.disciplina3 + "\n");

	   } 
*/

    }
   }


Deu erro? Qual erro? Faltou ponto e vírgula?

2 curtidas

Bom dia !
Qual a mensagem de erro ?

1 curtida

Exemplificando (toscamente):

import java.util.Scanner;

public class Aluno {
	private int matricula;
	private String nome;
	private String curso;
	private String[] disciplinas = new String[3];
	private double[] notas = new double[3];
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setMatricula(int matricula){
		this.matricula = matricula;
	}
	
	public int getMatricula(){
		return matricula;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setCurso(String curso){
		this.curso = curso;
	}
	
	public String getCurso(){
		return curso;
	}
	
	public void setDisciplina(String ... disciplina){
		for(short d = 0; d < disciplina.length; d++)
			this.disciplinas[d] = disciplina[d];
	}
	
	public String[] getDisciplina(){
		return disciplinas;
	}
	
	public void setNota(double ... nota){
		for(short n = 0; n < nota.length; n++)
			this.notas[n] = nota[n];
	}
	
	public double[] getNota(){
		return notas;
	}
	
	public static void main(String[] args){
		short contador = 1;
		Scanner leitor = new Scanner(System.in);
		Aluno aluno = new Aluno();
		
		System.out.print("\nInforme os dados do aluno.\nMatrícula: ");
		aluno.setMatricula(leitor.nextInt());
		
		leitor.nextLine();//limpa o scanner
		
		System.out.print("Nome: ");
		aluno.setNome(leitor.nextLine());
		
		System.out.print("Curso: ");
		aluno.setCurso(leitor.nextLine());
		
		
		System.out.println("Boletim");
		String[] d = aluno.getDisciplina();
		double[] n = aluno.getNota();
		
		for(short dcpn = 0; dcpn < aluno.getDisciplina().length; dcpn++){
			System.out.print("Disciplina " + (contador++) + ": ");
			d[dcpn] = leitor.nextLine();
			
			System.out.print("Nota: ");
			n[dcpn] = leitor.nextDouble();
			
			leitor.nextLine();//limpa o scanner
		}
		
		aluno.setDisciplina(d);
		aluno.setNota(n);
		
		System.out.println("\nAluno: " + aluno.getNome());
		System.out.println("Curso: " + aluno.getCurso());
		System.out.println("----- Boletim -----");
		for(short i = 0; i < aluno.getDisciplina().length; i++){
			System.out.println("Disciplina: " + aluno.getDisciplina()[i]);
			System.out.println("Nota: " + aluno.getNota()[i] + "\n");
		}
	}
}

Rodando…
image

1 curtida

No código que você postou não há em nenhum lugar a instrução:

dado.nome = r.nextLine();

Exemplo:

import java.io.PrintStream;
import java.util.Scanner;

public class Aluno {

    public String nome;
    public int matricula;
    public String curso;

    public String disciplina1;
    public Double nota1;

    public String disciplina2;
    public Double nota2;

    public String disciplina3;
    public Double nota3;

    public static void main(String[] args) {
        final Scanner entrada = new Scanner(System.in);
        final PrintStream saida = System.out;

        Aluno dado = new Aluno();

        saida.print("\n Inserir Matricula : ");
        dado.matricula = Integer.parseInt(entrada.nextLine());

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Curso : ");
        dado.curso = entrada.nextLine();

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Nome : ");
        dado.nome = entrada.nextLine();

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Disciplina 1 : ");
        dado.disciplina1 = entrada.nextLine();

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Nota 1 : ");
        dado.nota1 = Double.parseDouble(entrada.nextLine());

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Disciplina 2 : ");
        dado.disciplina2 = entrada.nextLine();

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Nota 2 : ");
        dado.nota2 = Double.parseDouble(entrada.nextLine());

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Disciplina 3 : ");
        dado.disciplina3 = entrada.nextLine();

        saida.print(" --------------------------------------------------------- \n");

        saida.print("\n Inserir Nota 3 : ");
        dado.nota3 = Double.parseDouble(entrada.nextLine());

        saida.print(" --------------------------------------------------------- \n");
    }
}
1 curtida

Como posso converter isso para uma variável?

Pensei em tipo


import java.io.PrintStream;
import java.util.Scanner;

public class Aluno {

    public String nome; 
    public int matricula;
    public String curso;
    
    public String disciplina1;
    public Double nota1;
    
    public String disciplina2;
    public Double nota2;
    
    public String disciplina3;
    public Double nota3;

    public static void main(String[] args) {
        final Scanner read = new Scanner(System.in);
        final PrintStream echo = System.out;

        Aluno data = new Aluno();

        echo.print("\n\n Matricula \n\n");
        data.matricula = Integer.parseInt(read.nextLine()); 

        echo.print("\n\n Curso \n\n");
        data.curso = read.nextLine(); 

        echo.print("\n\n Nome \n\n");
        data.nome = read.nextLine(); 

        echo.print("\n\n Disciplina 1 \n\n");
        data.disciplina1 = read.nextLine(); 

        echo.print("\n\n Nota 1 \n\n");
        data.nota1 = Double.parseDouble(read.nextLine()); 
        double nota1 = Double.parseDouble(data.nota1); 

        if (nota1 >= 7) {
            echo.println("\n . Aluno : " + data.nome + " foi aprovado na disciplina " + data.disciplina1 + "\n");
        } else if (nota1 < 7) {
            echo.println("\n . Aluno : " + data.nome + " foi reprovado na disciplina " + data.disciplina1 + "\n");
        } 

        echo.print("\n\n Disciplina 2 \n\n");
        data.disciplina2 = read.nextLine();

        echo.print("\n\n Nota 2 \n\n");
        data.nota2 = Double.parseDouble(read.nextLine()); 
        double nota2 = Double.parseDouble(data.nota2); 

        if (nota2 >= 7) {
            echo.print("\n . Aluno : " + data.nome + " foi aprovado na disciplina " + data.disciplina2 + "\n");
        } else if (nota2 < 7) {
            echo.print("\n . Aluno : " + data.nome + " foi reprovado na disciplina " + data.disciplina2 + "\n");
        } 

        echo.print("\n\n Disciplina 3 \n\n");
        data.disciplina3 = read.nextLine();

        echo.print("\n\n Nota 3 \n\n");
        data.nota3 = Double.parseDouble(read.nextLine()); 
        double nota3 = Double.parseDouble(data.nota2); 

        if (nota3 >= 7) {
            echo.println("\n . Aluno : " + data.nome + " foi aprovado na disciplina " + data.disciplina3 + "\n");
        } else if (nota3 < 7) {
            echo.println("\n . Aluno : " + data.nome + " foi reprovado na disciplina " + data.disciplina3 + "\n");
        } 

    }
}

Gostaria de algo ± assim data.nota1 em nota1 , data.nota2 em nota2, data.nota3 em nota3

Como você atribui algo para os atributos de um objeto? Assim:

nomeDoObjeto.nomeDoAtributo = valorAserAtribuido;

Como atribui algo à uma variável? Assim:

nomeDaVariavel = valorAserAtribuido;

Eu sugiro que ao invés de tentar aprender na tentativa e erro, faça um curso de programação, algoritmos e depois se preocupe em aprender Java.

1 curtida