gpt4 book ai didi

java - 让 3 个类互相调用

转载 作者:行者123 更新时间:2023-12-04 05:50:56 24 4
gpt4 key购买 nike

所以我想弄清楚如何让 3 个类(class)互相调用。

这是主要类(class)。

public class TestStudent {
public static void main(String[] args) {
myStudent mystudent_obj = new myStudent();
mystudent_obj.show_grades();
mystudent_obj.change_grades();
mystudent_obj.show_grades();
}
}

这是在上面的类中调用的第二类;
第二课调用另一个第三课并尝试操纵它
使用两个函数。功能 show_grades只需打印出第三类中的变量
和功能 change_grade尝试更改第三类中的变量。
public class myStudent {
public void show_grades(){
Student student_obj = new Student();
System.out.println(student_obj.studGrade);
System.out.println(student_obj.studID);
}

public void change_grades(){
Student student_obj = new Student();
student_obj.studGrade='V';
student_obj.studID=10;
}
}

这是第三次调用,它只有两个变量。
public class Student {
public int studID = 0;
public char studGrade = 'F';
}

当我运行程序时,它运行时没有错误,我得到以下输出:
F
0
F
0

但是,我可以看到函数 show_grades工作,它确实显示成绩,但
函数 change_grades不改变成绩:

最终结果,应该是这样的
F
0
V
10

因为改变等级功能,应该改变了那些变量......那是怎么回事?

最佳答案

在您的 myStudent 类中,您将在每个方法中创建一个新的 Student 实例,这意味着每个方法都有一个 Student 类的局部变量。当您调用 show_grades第二次创建一个新实例,默认值为 0 和 F。

如果您创建一个变量并改为使用它,您的更改等级将更改实例变量的变量,而不是每个方法中的局部变量。这是由于编程中的作用域,您可以在 Wikipedia 阅读更多信息。 .

public class myStudent {
private Student student_obj = new Student();

public void show_grades() {
System.out.println(student_obj.studGrade);
System.out.println(student_obj.studID);
}

public void change_grades(){
student_obj.studGrade='V';
student_obj.studID=10;
}
}

关于java - 让 3 个类互相调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10058872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com