我定义了两个java类test1和test2,其中在test1中定义了一个变量a=3
,然后在connect()方法中改为10
,我使用Scanner
使程序不退出。但是当我在test2中调用test1. a
时,得到的值仍然是初始值a=3
而不是a=10
。我应该使用什么方法来获取a
的修改值?
public class test1 {
public static int a=3;
public static void connect(){
System.out.println(a);
a=10;
System.out.println(a);
Scanner sc = new Scanner(System.in);
sc.nextLine();
}
public static void main(String[] args) {
connect();
}
}
public class test2 {
public static void main(String[] args) {
System.out.println(test1.a);
}
}
这两个类在执行时是分开的。静态变量也称为类变量或成员变量,因此它只与一个类相关。当您执行代码时,您必须先运行test1,然后您必须再次运行test2。这将导致在您执行syso(test1. a)时,只有test1的初始值被提取到test2中,因为这两个类是分开执行的。
因此,如果您想将类test1的修改值使用到另一个类test2中,您必须从test2调用test1。
Public class test2 {
Public static void main(String[] args) {
Syso(“a in test2 “+test1.a);
test1.connect();
Syso(“modified a in test2 ”+test1.a);
}
}
希望它消除了你的疑虑。
在test2中,您必须调用test1.connect()将a更新为10。然后您可以使用System.out.println(test1. a)来获取修改后的a的值。
这是因为您从未调用过test1.connect()
,因此该值从未被修改过。所以在main()
中调用test1.connect()
。您不能同时拥有两个main()
方法。:
public class test2 {
public static void main(String[] args) {
test1.connect();
System.out.println(test1.a);
}
}
然后卸下测试1中的main()
。此外,在Java中,按照惯例,通常对类名使用PascalCase。因此,将第一个字母大写,使用Test1而不是Test1。
此外,如果希望在不调用任何方法的情况下修改a的值,并且在加载类时(虽然我不知道为什么),可以使用静态块:
public class Test1 {
public static int a = 3;
static {
System.out.println(a);
a = 10;
System.out.println(a);
Scanner sc = new Scanner(System.in);
sc.nextLine();
}
}
我有一个类Main(它具有公共静态void Main(String[]args))和另一个类MyDocument。 Main类中存在一个变量,我想从MyDocument类中的函数alphabetOccurrence()访问该变量。我该怎么做呢?我不想用它作为静态变量。任何修改只能在函数中进行,其余的代码应该保持不变。
我不明白为什么下面的代码会打印两次。我以为应该是个人和学生。当通过“a”对象调用printPerson()内部的getInfo()时,为什么要调用Person类内部的一个,为什么不调用Student类中的一个?提前谢谢。
我正在做一个新的项目,我试图建立一个货币系统,在那里我可以提取它,以转移到另一个变量(在另一个类)。我在解决这个问题上遇到了一些问题,我对如何编写代码感到非常失望。下面是我想链接的类(我想让“coinsamount”在我做/存款时进入类2“amount” 第2类:
我遇到了一个问题,我需要调用在另一个java类中的一个java类中创建的变量。 课程.java 第二课程.java 即使,我已经这样设置了它,但可变调用在第二课程.java类中不起作用。我错过了什么吗?你可以帮我吗? 我在试着打电话 在SecondCourse.java类。但给我错误sendKeys(java.lang.CharSequence....)在org.openqa.selenium.W
我在class中定义了一个变量。它可以很好地执行Account类中定义的提款功能。但是,我希望访问Sav\u acct类中存在的函数interest中的变量值。它将收回的值取为0。如何使用兴趣函数中的函数中的函数的值,以便执行正确的数学运算? 导入java。util。扫描仪; 类别帐户{ 双重撤回; } 作废取款(){ 扫描仪sc=新扫描仪(系统英寸); 系统出来println(“您想提取多少?”
问题内容: 如果我有这个: 我之前已定义,因此效果很好。 我的问题是在第6行中调用。我试图用相同的定义在第一个函数之外进行定义,但是即使调用,它也始终相同。 我希望每次调用第一个函数然后再调用第二个函数时,都具有一个不同的。 我能做到这一点,而不界定外? 问题答案: 是的,您应该考虑在一个类中定义您的函数,并使word成为成员。这比较干净 创建类后,您必须将其实例化为对象并访问成员函数。 另一种方