Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中从另一个类调用方法?_Java - Fatal编程技术网

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

在Java中从另一个类调用方法?,java,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 a

下面有两个类,我想在主程序中调用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”


欢迎任何帮助

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


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

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

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

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

System.out.println(p1);

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

public static void main (String []args)
{
    Place p1 = new Place();
    p1.SetPlace();// added here
}
但是您可能犯了两个错误:以错误的方式编写
SetPlace
,以及缺少“print”语句。
setter通常如下所示:

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());

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

主要的方法是

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

为place创建setter方法

注意:-根据Java指南…方法名称必须以小字符开头,并且必须遵循大小写

public void setPlace(String place)
{

    this.place=place;
}
为place创建getter方法,并使用place类的引用变量调用此方法以获取值

public String getPlace()
{
  return place;
}
现在从主类调用setter方法开始

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

您不必执行
place=null。默认情况下,参考地点将指向null。
p1。设置地点(“地下城”)
应该工作吗?将
setPlace()
方法更改为将
String
作为参数。setter通常应该是非静态的。:)@VinodMadyalkar说得很对,但我只是想补充一点,让他或她知道这是一个选项,我会在帖子中编辑它。