JAVA中静态变量如何动态赋值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中静态变量如何动态赋值?相关的知识,希望对你有一定的参考价值。
两个类:Demo和Val
在Demo中定义一个静态变量t1
Public class Demo
static int t1;
public static void main(String[] args)
int t2 = 123456;
t1 = t2+5;
System.out.println(t1);
System.out.println(t2);
在当前类中运行,t1的值是t2加5后的值,但是在Val类中,t1的值是0,也就是说并没有给t1真正的赋上值,请问如何才能将这样的计算结果赋值给静态变量?使其在其它类中也可以同样获得被赋值后的新值?
谢谢!
Java赋值:
1、赋初值:定义变量的同时赋值
例如: int a = 5;
2、先定义后赋值
例如:
int a;
a = 5+5;
这两种都是可以的,你选择的是第二种,先定义后赋值。
你在val类中创建Demo类的实例,只是获得了t1的初值,而给t1赋值的部分放在了main()方法里,方法需要调用才能执行的(构造方法除外),因为你没有调用t1的赋值方法main(),所以t1未赋值,int 默认值为0 ,所以打印的结果是0;
你要在Val类中实例化后调用main()方法,
Demo demo = new Demo();
demo.main(args);
这样就t1就会被赋值了,不过java开发中不建议调用main()这种方式,
建议你单独给t1变量加个赋值方法或者构造方法
例如:
package test20210104;
public class Demo
static int t1;
public void setT1(int t2)
t1 = t2+5;
调用的时候给t1赋值
package test20210104;
public class Val
public static void main(String[] args)
Demo demo = new Demo();
demo.setT1(1325);
System.out.println(demo.t1);
追问
您好!不好意思我没太看明白,我是刚刚开始学习JAVA,刚刚学到变量这部分的时候有了这样的一个疑问的。
t1的值是在t2的方法中,通过运算或者调取某些数据后再加工后得到的值赋给t1的。如果给t1单独创建一个类,那么t2的值也无法跨类传递啊?
我现在是这样想,比如在某一个类的某个方法中,计算出来一个值,想传递给一个变量,这个变量的值在全部程序中进行调用,那么比较合适的方式是什么样的呢?
谢谢您!
1、变量需要给他赋值才能使用,
变量可以在定义的时候就给他赋值,例如:int a = 3;
也可以先声明变量b,
int b;
然后再给变量b赋值:
b=9;
给变量赋值的时候可以直接赋数值,也可以通过计算获得一个数值然后赋值给b变量(就是通过方法获得)
例如:有个方法是把传入的值乘以3,然后把结果返回给调用者。
public int method(int n)
return n*3;
这个时候如果调用method方法给b赋值。
b = method(6);
传入了一个6,所以方法method把6乘以3的结果返回给调用者b
所以b的值是18 。
普通方法本身是需要调用的,否则不会执行。
方法大致有下面三种
1、普通方法,自定义的各种计算方法,此类方法需要调用才能执行,
例如:C类里面有个method方法,该方法把自己增加5。
class C
public int method(int n)
return n+5;
A类有个变量b刚好想要把自己增加5,那他就调用C类的method方法.
class A
int b = 3;
C c = new C();
b = c.method(b);
这时候b的值就是8了。
2、构造方法,类实例化的时候自动执行,
A类有构造方法如下:
class A
int b;
public A()
public A(int b)
this.b = b;
A类中定义了一个int变量b,注意以下两种实例化方式的差别。
class F
public static void main(String[] args)
A a = new A();
A a = new A(9);
A a = new A(); 实例化A类时调用默认构造函数,没有给任何变量赋初值,所以b=0;
A a = new A(9);调用了有参数的那个构造函数,所以把9赋值给了b,b=9。
3、主方法(主函数)
主方法会自动执行,一般用来输出一些结果
public static void main(String[] args)
System.out.println("hello world");
以上是关于JAVA中静态变量如何动态赋值?的主要内容,如果未能解决你的问题,请参考以下文章