как получить ввод от сканера в мою личную строку в другом классе?

#java #java.util.scanner

Вопрос:

это мое первое задание, как получить ввод от сканера в мою личную строку в другом классе?

  1. Создайте класс автора, как описано ниже.(я уже сделал это)
  2. Создайте тестовый класс TestAuthor для тестирования всех общедоступных методов в классе Author. Ниже приведен пример вывода.

вопросы

это мой авторский код

 package assignment1;

public class Author {
    
    //attribute of the class
    private String name;
    private String email;
    private char gender;
    
    
    //constructor
    public Author(String name, String email, char gender) {
        
        this.name = name;
        this.email = email;
        this.gender = gender;
    }
    
    //methods
    public String getName() {
        
        return name;
    }
    
    public String getEmail() {
        
        return email;
    }
    
    public void setEmail(String newEmail) {
        
        this.email = newEmail;
        
    }
    
    public char getGender() {
        
        return gender;
        
    }
    //method to get data from author object 
    public String toString() {
        
        return "Author[name=" name ", email=" email ", gender=" gender "]";
                
    }   

}
 

это мой автор
теста, и я получаю эту ошибку
‘Метод getName() в типе Автор неприменим для аргументов (строка)’

 
package assignment1;

import java.util.Scanner;  // Import the Scanner class


public class TestAuthor {

    public static void main (String[] args) {
        
        
        //test constructor 
        Author newAuthor = new Author();
        
         Scanner input = new Scanner(System.in);
         System.out.println("Please enter name : ");
         String name = input.nextLine();
            newAuthor.getName(name);
            System.out.println("Name : " newAuthor.getName());
        
    }
    
    
    
    
    
}
 

ТИА

Комментарии:

1. Просто удалите name аргумент в вызове функции. getName метод не требует никаких параметров.

Ответ №1:

Вам нужно добавить метод настройки для свойства name в классе Author, как это:

назначение пакета 1;

автор открытого класса {

 //attribute of the class
private String name;
private String email;
private char gender;


//constructor
public Author(String name, String email, char gender) {
    
    this.name = name;
    this.email = email;
    this.gender = gender;
}

//methods
public String getName() {
    
    return name;
}

public void setName(String name){
  this.name = name;
 }

public String getEmail() {
    
    return email;
}

public void setEmail(String newEmail) {
    
    this.email = newEmail;
    
}

public char getGender() {
    
    return gender;
    
}
//method to get data from author object 
public String toString() {
    
    return "Author[name=" name ", email=" email ", gender=" gender "]";
            
}   
 

}

В классе TestAuthor вам нужно вызвать setter, чтобы установить значение, а затем позвонить следующим образом :

назначение пакета 1; импорт java.util.Сканер; // Импорт класса сканера

теставтор открытого класса {

 public static void main (String[] args) {
     
    //test constructor 
    Author newAuthor = new Author();
    
     Scanner input = new Scanner(System.in);
     System.out.println("Please enter name : ");
     String name = input.nextLine();
        newAuthor.setName(name);
        System.out.println("Name : " newAuthor.getName());
    
}
   
 

}

Ответ №2:

спасибо за помощь, я получил ответ, это мой файл теставтора

 package assignment1;

import java.util.Scanner;  // Import the Scanner class


public class TestAuthor {

    public static void main (String[] args) {
        
        //set variables()
        String name;
        String email;
        char gender;
        
        
        //Scanner input object
        Scanner input = new Scanner(System.in);
        
        
        //get user input
        System.out.println("Please enter Name : ");
        name= input.nextLine();
        
        System.out.println("Please enter Email : ");
        email= input.nextLine();
        
        System.out.println("Please enter Gender : ");
        gender= input.nextLine().charAt(0);
        
        
        //
        Author newAuthor = new Author(name,email,gender);
        name = newAuthor.getName();
        email = newAuthor.getEmail();
        gender = newAuthor.getGender();
        

        //output toString
        System.out.println(newAuthor.toString());
        
        
        //set new email
        System.out.println("Please change Email : ");
        String newEmail= input.nextLine();
        newAuthor.setEmail(newEmail);
        
        
        //output
        System.out.println("Name : " newAuthor.getName());
        System.out.println("Email : " newAuthor.getEmail());
        System.out.println("Gender : " newAuthor.getGender());
        
        
    }
    
    
    
    
    
}
 

Комментарии:

1. Круто, но вы упомянули, что у вас возникли проблемы с получением входного значения для стоимости частной собственности в другом классе, в любом случае это хорошо работает для вас.

2. Да, извините, я не знаю, как сказать о проблеме, в любом случае спасибо вам за помощь