2015-11-14 95 views
-2

我对Java中的对象范围有疑问。 例如,我有两个称为A类和B类的类。主要方法在类A中,并且我在main()中实例化了一个B类对象。我发现我不能在A类的另一种方法中使用这个对象。为什么?如果我想在这个类的一个方法的另一个类中使用方法,我该怎么做?Java - 在用同一类的另一种方法实例化的方法中使用对象

public class A 
{ 
    public static void method() 
    { 
    int i = example.value; 
    } 
    public static void main(String args[]) 
    { 
     B example = new B(); 
     method(); 
    } 
} 
public class B 
{ 
public int value = 3; 
} 

我可以这样做吗?

public class A 
{ 
    static B example; 
    public static void method() 
    { 
    int i = example.value; 
    } 
    public static void main(String args[]) 
    { 
     example = new B(); 
     method(); 
    } 
} 
public class B 
{ 
public int value = 3; 
} 
+0

范围不适用的对象。它适用于程序源代码中的名称。 –

+0

此外,'方法'执行完成后'i'被销毁,所以无论如何您都无法访问它。 –

+0

@SotiriosDelimanolis:那么在我上面的例子中,我怎样才能改变访问类A中的方法中的B类成员? – user3618703

回答

0

您需要将B对象作为参数的方法:

public void method(B example) 
{ 
int i = example.value; 
} 
public static void main(String args[]) 
{ 
    B example = new B(); 
    method(example); 
+0

我通过在方法调用之外声明静态对象来编辑上面的代码。会造成什么问题吗?谢谢〜 – user3618703

+0

如果你在方法之外声明它,但在同一个类中声明它,你不需要在方法参数中传递它,但它应该一直工作。 Google Java成员变量。 – EkcenierK

相关问题