从Java中的另一个类调用方法?

时间:2015-12-06 12:53:57

标签: java

下面有两个课程,我想在我的主程序中调用SetPlace方法。

public class Place
{
//variables
//constructors
//methods

    private String place; //only accessible within the class

    public Place()
    {
        place = null; // strings initialised as null as it doesn;t refer to anything yet -1 for int
    }

    public void SetPlace()
    {
        Place p1 = new Place();
        p1.place="Dungeon";
    }

}

public class Main {
    public static void main (String []args)
    {
          Place p1 = new Place();          
    }
}

如何将SetPlace方法传递给Main方法并打印出" Dungeon"。

欢迎任何帮助!

5 个答案:

答案 0 :(得分:1)

您必须创建该类的实例,例如:Place place = new Place()然后place.SetPlace()

或者您可以创建该函数static,以便可以在main中调用它,而无需创建它的新实例。请注意,setter可能不应该是静态的,但是如果你想从另一个类访问一个函数,那就是这样做。

答案 1 :(得分:1)

您只需要在main方法中编写调用语句,如下所示:

public static void main (String []args)
{
    Place p1 = new Place();
    p1.SetPlace();// added here
}

但是你可能犯了两个错误:以错误的方式写SetPlace,缺少" print"声明。
安装工通常看起来像这样:

SetPlace(String place){
    this.place = place; // instead of creating a new instance of Place
}

如果要在控制台上打印内容,可以使用 System.out

// write this method in class Place
String getPlace(){
    return place;
}
...
// call it in Main
System.out.println(p1.getPlace());

答案 2 :(得分:0)

它不起作用。您不能将该方法作为参数传递,而是将refence传递给您的对象/实例。在你的情况下,因为你已经创建了一个实例,你可以调用

p1.SetPlace();

此外,如果你想将它打印到控制台,你应该在Place类中编写一个toString()方法,然后使用System.out调用调用它,如下所示

public String toString()
{
  return place;
}
主要方法

中的

System.out.println(p1);

答案 3 :(得分:0)

如果要获取字符串位置的值以便打印它,您还需要创建一个返回位置的getPlace()方法。

在你使用的主要方法中

p1.SetPlace();
System.out.println(p1.getPlace());

答案 4 :(得分:0)

为场所创建setter方法。

注意: - 根据Java指南...方法名称必须以小字符开头,并且必须遵循驼峰案例。

public void setPlace(String place)
{

    this.place=place;
}

为place创建getter方法并获取值使用Place类的引用变量调用此方法。

public String getPlace()
{
  return place;
}

现在来自Main类调用setter方法。

 Place p1 = new Place();  
 p1.setPlace("New York");