如何使用main在两个Java类之间传递对象

时间:2014-03-19 19:45:46

标签: java class inheritance argument-passing

基本上我在一个程序中创建一个自定义对象,并在一个程序中实例化值,然后我创建另一个程序并想要打印实例化的对象输出。

import java.util.Scanner;
class example {
    int value;
    String name;
    String city;
}
public class Yummy21 {
    static example[] obj=new example[3];
    static Scanner input=new Scanner(System.in);
    public static void main(String args[])
    {
        init();
    }
    public static void init()
    {
        for(int i=0;i<3;i++)
        {
            obj[i]=new example();
        }
        for(int i=0;i<3;i++)
        {
            System.out.println("for the object "+i+" enter the name ");
            obj[i].name=input.next();
            System.out.println("for the object "+i+" enter the city ");
            obj[i].city=input.next();
            System.out.println("for the object "+i+" enter the name ");
            obj[i].value=input.nextInt();
        }
    }
}

下一个节目:

public class Yummy22 extends Yummy21 {
    public static void main(String args[])
    {
        for(int j=0;j<3;j++)
        {
            System.out.println("the value of the object["+j+"].name is "+obj[j].name);
        }
    }
}

第一个程序运行正常,这意味着它需要值,第二个程序显示NullPointerException

2 个答案:

答案 0 :(得分:3)

Yummy22.main不会调用Yummy21.init。或许放一个

static { init(); }

在Yummy21。

话虽如此,这三个类是Java的可憎之处。请至少遵循命名约定。班级example应为Example。还可以使用对象级别字段,构造函数和非静态成员来编写所有这些代码

答案 1 :(得分:0)

序列化程序1中的数据并将其写入磁盘,然后从程序2中读取它。