Как вызвать созданный класс в тестовом классе на Java?

#java

#java

Вопрос:

Я новичок в Java. Я создал общедоступный класс с именем Student, и я также создал для него тестовый класс. Дело в том, что я не знаю, как вызвать мой созданный класс «Student» внутри тестового класса. Я поместил оба класса в одну папку, но тестовый класс выдает сообщение об ошибках.

 TestStudent.java
setName cannot be resolved or is not a field
setPhoneNum cannot be resolved or is not a field
setCgpa cannot be resolved or is not a field
setSubject cannot be resolved or is not a field
setAddress cannot be resolved or is not a field
 

Вот мой код для класса Student:

 public class Student {
    private String name;
    private int phoneNum;
    private double cgpa;
    private String subject;
    private String address;

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

    public int getPhoneNum(){
        return phoneNum;
    }

    public double getCgpa(){
        return cgpa;
    }

    public String getSubject(){
        return subject;
    }

    public String getAddress(){
        return address;
    }


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

    public void setPhoneNum (int newPhoneNum){
        this.phoneNum = newPhoneNum;
    }

    public void setCgpa (double newCgpa){
        this.cgpa = newCgpa;
    }

    public void setSubject (String newSubject){
        this.subject = newSubject;
    }

    public void setAddress (String newAddress){
        this.address = newAddress;
    }
    
}
 

Вот мой код для класса TestStudent:

 public class TestStudent {
    public static void main(String[] args){
        Student Alex = new Student();
        Alex.setName = "Alexis";
        Alex.setPhoneNum = 193;
        Alex.setCgpa = 4.0;
        Alex.setSubject = "English, Biology";
        Alex.setAddress = "Rainbow Land";

        System.out.println(Alex.getName());


    }
}
 

Может ли кто-нибудь помочь мне в этом?

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

1. setName является ли метод не полем экземпляра, поэтому вы должны вызывать его как вызов метода Alex.setName("alexis") . Вы не можете напрямую обращаться к закрытому полю name . Я думаю, вам следует узнать немного больше о концепции encapsulation in Java . Первая ссылка, которую я нашел: geeksforgeeks.org/encapsulation-in-java

2. @nana установите ответ как принятый, если это вам поможет.

Ответ №1:

Я думаю, что ваш TestStudent класс должен выглядеть так:

 public class TestStudent {
    public static void main(String[] args){
        Student Alex = new Student();
        Alex.setName("Alexis");
        Alex.setPhoneNum(193);
        Alex.setCgpa(4.0);
        Alex.setSubject("English, Biology");
        Alex.setAddress("Rainbow Land");

        System.out.println(Alex.getName());
    }
}
 

Вы создаете Student объект, а затем вызываете установщики с аргументом в скобках. Вообще нет присваивания with = . Это делается внутри методов setter.

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

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