Java:在另一个类中使用来自类的对象

时间:2017-05-04 12:01:08

标签: java class

我有两个不同的文件。在下面的文件中,我创建了一个带有属性的新对象,并创建了一个方法来检索该属性。

public class Journey
{
    public double singleCost;

    public void setSingleCost(double cost) {
        singleCost = cost;
    }

    public double getSingleCost() {
        return singleCost;
    }

    public static void main (String[] args) {
        Journey leicester_loughborough = new Journey();
        leicester_loughborough.setSingleCost(2.5);

        Journey leicester_nottingham = new Journey();
        leicester_nottingham.setSingleCost(3.5);
    }
}

在一个单独的文件中,我想打印出该对象的属性。我不知道怎么做。以下似乎不起作用。

public class JourneyMethods
{    
    public static void main (String[] args) {
        System.out.println(leicester_loughborough.getSingleCost());
    }
}

感谢您的帮助,谢谢。

4 个答案:

答案 0 :(得分:1)

你正在考虑这个主要方法。

JourneyMethods主要方法对Journey一无所知,除非你告诉它。如果您创建对JourneyMethods的引用,则Journey将能够与Journey实例进行互动。

答案 1 :(得分:0)

您只需为具有该属性的类创建一个getter()方法(在您的Journey.class中)。 像这样:

public double getSingleCost() {
    return singleCost;
}

然后,您可以通过从您拥有的对象实例调用getSingleCost()来获取该属性。像这样:

double cost = leicester_loughborough.getSingleCost();

请注意,这是非常基本的内容,您可能需要先阅读更多Java教程。

哦,你的程序应该只有一个main()方法作为入口点。 (有理由不止一个,但这些都是特定于案例的)。如果以在OP中编写的方式运行程序,地址空间以及两个应用程序的执行将彼此分离,并且您无法访问包含在不同应用程序中的对象(以及,有序列化的方法,但那些是更高级的主题)。 让你的课程/对象包含在同一个程序中。

修改:修复OP代码按预期工作:

public class Journey
{
    public double singleCost;

    public void setSingleCost(double cost) {
        singleCost = cost;
    }

    public double getSingleCost() {
        return singleCost;
    }
}

JourneyMethods:

public class JourneyMethods
{    
    public static void main (String[] args) {
        Journey leicester_loughborough = new Journey();
        leicester_loughborough.setSingleCost(3.5);
        System.out.println(leicester_loughborough.getSingleCost());
    }
}

您需要在JourneyMethods类中创建两个旅程对象,以便您可以参考它们。你也应该把'files'称为类,因为'file'通常意味着文件系统上的文件,而不是代表Java类的文件。这让我有点困惑。

答案 2 :(得分:0)

你的班级对象:

public class Journey
{
    public double singleCost;

    public void setSingleCost(double cost) {
        singleCost = cost;
    }

    public double getSingleCost() {
        return singleCost;
    }

}

你的主要课程:

public class JourneyMethods
{    
    public static void main (String[] args) {
        Journey Leicester_loughborough = new Journey();
        leicester_loughborough.setSingleCost(2.5);
        Journey leicester_nottingham = new Journey();
        leicester_nottingham.setSingleCost(3.5);
        System.out.println(leicester_loughborough.getSingleCost());
    }
}

这就是Java的工作原理,我认为你与C混淆了(带.h和.c文件) 在Journey类中使用main()函数没有意义,您可以从代码中的任何位置实例化对象,因此将它放在main()函数中:)

在Java中,您通常希望将方法放在Object类中。

答案 3 :(得分:0)

要访问对象属性,必须在外部类中创建对象,并使用getter和setter方法获取对象的值。

public class Journey{
public double singleCost;

public void setSingleCost(double cost) {
    singleCost = cost;
}

public double getSingleCost() {
    return singleCost;
}  

}

public class JourneyMethods{    
public static void main (String[] args) {
    Journey Leicester_loughborough = new Journey();
    leicester_loughborough.setSingleCost(2.5);
    Journey leicester_nottingham = new Journey();
    leicester_nottingham.setSingleCost(3.5);
    System.out.println(leicester_loughborough.getSingleCost());
}

}