有两个类其中一个类想得到另一个类中的一个变量应该怎么写?
如:
class a{
public static void one()
{
int i = 1;
}
}
class b{
public static void second()
{
在这里怎么才能得到a类中i的值
}
}

解决方案 »

  1.   

    public class AAA{
       private int i=0;
       public static void one(){
           i = 1;
       }
    }public class BBB{
        AAA a = new AAA();
        a.i;//这个就可以得到
        AAA.i;//或者这个
    }
      

  2.   

    i是方法中的局部变量,根本在方法外取不到的,你在a类的one()方法之外都取不到,别说b类中了
    常见的实现是:public class A{
       private int i=0;
       public int one(){
           return i;
       }
    }public class B{
        A a = new A();
        System.out.println(a.one());
    }
      

  3.   

    class a{
    public static void one()
    {
    int i = 1;
    }
    }
    class b{
    public static void second(a a)
    {
      System.out.println(a.i);
    }
    }
      

  4.   

    由于楼主写的类a中的i的访问权限为默认的friendly,具有包内和继承类可见性。如果类b是在同一个包内的话,可以通过其对象进行访问。
      

  5.   

    jide_123() 和  blasterboy(自由给与我力量。支持O'Reilly) 在误导!
    你们最好试一下再说楼主的i变量根本不是类的成员变量,除了one()方法内,a类里面都不能访问。
      

  6.   

    public class AAA{
       private int i=0;
       public static void one(){
           i = 1;
       }
    }public class BBB{
        AAA a = new AAA();
        a.i;//这个就可以得到
        AAA.i;//或者这个
    }
    错的,你写的I根本不是static的,怎么能用AAA.i来取?
      

  7.   

    class A{
    //...
        int getI(){
             return i;
        }
    //...
    }class B{
    //...
        int ii = new A().getI()
    //...
    }
      

  8.   

    如果想要保存值就将其设为成员变量,可为其写get()、set()方法,也可直接将其设为public,以方便调用如果不想保存其值,直接将public static void one()修改为public static int one(),将其返回即可。
      

  9.   

    class a{
    public static void one()
    {
    int i = 1;
    }
    }上面这个i在one方法中才有效,可以把i提取出来声明:class a{
    private static int i;
    public static getI(){
      return i;
    }
    ......
    }b类可以这样写:
    class b{public static void second()
    {
    //在这里怎么才能得到a类中i的值
    int i = a.getI();
    //这个i就是a类中的i了
    }
    }
      

  10.   

    如果想要保存值就将其设为成员变量,可为其写get()、set()方法,也可直接将其设为public,以方便调用如果不想保存其值,直接将public static void one()修改为public static int one(),将其返回即可。