java怎么在一个类中取到另一个类的静态数值及静态方法呢?

有一个类Tempa
public class Tempa {
public static int num = 0;

public synchronized void add(){
    num++;
}

public static int getNum(){
    return num;
}

public static void main(String[] args) throws InterruptedException {
    // TODO 自动生成的方法存根
    Tempa a = new Tempa();
    for(int i = 0;i<100;i++){
        Thread.sleep(500);
        a.add();
    }

}

}

里面有静态数值和一个静态方法

但是在另一个类里却取不到Temp
public class Temp {

public static void main(String[] args){

    System.out.println(Tempa.getNum());
}

}

一直输出就是0,没有得到想要的数值,请大神帮忙看一下呢。谢谢啊

你把add 里面的方法写错了,改为num+=1; num++,要使用才会加1;其他的没有问题。

因为它们是两个进程,并不属于同一个环境,所以才会是0吧。你放到一个应用环境就可以

你执行的是Temp类的main方法,它是不会去调用Tempa中的main方法的。

public static void main(String[] args) throws InterruptedException {
// TODO 自动生成的方法存根
Tempa a = new Tempa();
for(int i = 0;i<100;i++){
Thread.sleep(500);
a.add();
}
}
改成静态块:
static {
// TODO 自动生成的方法存根
Tempa a = new Tempa();
for(int i = 0;i<100;i++){
Thread.sleep(500);
a.add();
}
}

需要把你的getNum()方法的权限设置为private,因为权限是public时,外部的程序就会绕过synchronized void add()方法。
定义private 的instance变量+它的 get方法,而不要定义public/protected的instance变量。如果将变量定义为public,对象在外界可以
绕过同步方法的控制而直接取得它,并改动它。