使用方法打印特定的数组对象

时间:2014-03-16 11:29:01

标签: java arrays object methods

我有一个对象数组。 从另一种方法我想从数组中打印一个对象,此方法的输入必须是一个整数,表示数组中对象的索引。 我无法从printObject()到达数组。我该怎么做?

public static void main(String[] args) {
    Object []obj = new Object[2];
    printObject(1);
}

public static void printObject(int i){
    if (i == 0){
        System.out.println(obj[0].toString());
    }
    if (i == 1){
        Systen.out.println(obj[1].toString());
    }
}

5 个答案:

答案 0 :(得分:1)

因为它是声明main方法的块中,所以它只会在那里知道。将其设为class member或将其作为参数传递。

示例:

private int memberInt;

private void foo() {
   memberInt = 5; // :)
   int a = 7;
   //..
   a = 9; // :)
}

private void bar() {
   a = 10; // :_(
   memberInt = 10; // :)
}

答案 1 :(得分:1)

您可以将数组作为参数传递给printObject(并简化):

public static void main(String[] args) {
    Object[] obj = new Object[2];
    printObject(obj, 1);
}

public static void printObject(Object[] objects, int index){
    if (index == 0 || index == 1) {
        System.out.println(objects[index].toString());
    }
}

答案 2 :(得分:1)

变量obj的范围仅限于main方法,并且在printObject方法中不可用。 因此,要访问类型Object[]的变量,请将Object []obj作为类成员,以便该成员可以在类中使用,或者可以作为参数发送到printObject方法。 / p>

检查以下代码:

public class AccessingMembers 
{
static Object []obj  = null;

public static void main(String[] args) {
    obj = new Object[2];
    obj[1] = new Integer(10);//for example
    printObject(1);
}

public static void printObject(int i){
    if (i == 0){
        System.out.println(obj[0].toString());
    }
    if (i == 1){
        System.out.println(obj[1].toString());
    }
}
}

如果您运行代码,那么您将获得10作为答案。

答案 3 :(得分:0)

要么声明一个可以在整个类中访问的全局数组,要么将数组作为参数传递给方法,以便它可以访问它。

答案 4 :(得分:0)

Object [] obj = new Object [2];是一个方法变量,它的范围仅适用于该方法。

这里还有一件事使用上面的语句,你只创建了对象的两个引用而不是实例。

//创建实例

obj [0] = new Object();
obj [1] = new Object();

试试这个,

班级考试{
    static Object [] obj = new Object [2];

public static void main(String[] args) {

    printObject(1);
}

public static void printObject(int i) {
    obj[0]=new Object();  
    obj[1]=new Object();  

    if (i == 0) {
        System.out.println(obj[0].toString());
    }
    if (i == 1) {
        System.out.println(obj[1].toString());
    }
}

}