繁体   English   中英

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

[英]Print specific array object with method

我得到了一系列物体。 从另一种方法中,我想从数组中打印一个对象,此方法的输入必须是一个整数,它表示对象在数组中的索引。 我无法从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());
    }
}

由于它是在main方法的块中声明的,因此仅在其中知道。 使它成为类成员或将其作为参数传递。

例:

private int memberInt;

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

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

您可以将数组作为参数传递给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());
    }
}

变量obj的范围仅限于main方法,在printObject方法中printObject用。 因此,要访问Object[]类型的变量, printObject Object []obj设为类成员,这样该成员将在整个类中可用,或者可以作为参数发送给printObject方法。

检查以下代码:

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作为答案。

声明一个整个类都可以访问的全局数组,或者将该数组作为方法的参数传递给它,以便它可以访问它。

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

这里使用上面的语句还有另外一件事,您仅创建了对象的两个引用,但没有创建实例。

//创建实例

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

尝试这个,

类测试{
静态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());
    }
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM