首先,变量是有作用范围和生命周期的,这个你需要明确。
类成员变量:
作用范围,通过关键字来实现,public、private。。。
生命周期,该类被加载实例化后--该类结束
方法成员变量:
作用范围,该方法内部
生命周期,随着方法的生命周期
故此,一个函数的变量是否可以被另外一个函数使用,得看该变量的具体范围和生命周期
//变量是不能被调用的吧,应该被获得他的值
//你可以调用该变量的函数(方法)以获得该变量的值
//如下是我写的两个例子希望能帮助你理解
import java.util.Random;
public class Test {
/*void修饰的方法是无返回的,你要获得某个方法(函数)的变量值,那么该方法就不能用VOID修饰*/
public int changepic1() {
Random random = new Random();
int index1 = 1+random.nextInt(7);
return index1;
}
public int getChangepic1(){
return changepic1() ;
}
public static void main(String[] args) {
Test t = new Test();
System.out.println("直接调用该方法获得他的值");
System.out.println(t.changepic1());
System.out.println("调用其他方法间接获取到他的值");
System.out.println(t.getChangepic1());;
}
}
import java.util.Random;
public class Test2 {
Random random = new Random();
int index1 = 1+random.nextInt(7);
/* public void changepic1(int index1) {
this.index1 = index1;
}*/
public int getIndex1() {
return index1;
}
public static void main(String[] args){
Test2 t2= new Test2();
System.out.println(t2.getIndex1());
}
}
变量是有作用域限制的,一个函数中的变量是无法被另一个函数使用的。
想要达到这种效果,通常是申明为类的成员变量。
public class Test{
private int i;
public void f1(){
i = new Random().nextInt();
}
public void f2(){
int k=i*10;
}
}
采用封装那种模式,属性私有,提供一个public的get方法获取这个属性咯,当然如果想更直接调用: public static int index1 = 1+random.nextInt(7); 在别的类里直接:类名.index1就能直接调用了。
你说的函数zaijava里应该叫方法吧,原本一个方法是无法直接调用另一个里的变量的,但通过
类(有时可以省略).方法名.变量名 就可以调用了。
希望我的回答对你有帮助