在Java中从另一个类调用方法?
下面有两个类,我想在主程序中调用SetPlace方法在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
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说得很对,但我只是想补充一点,让他或她知道这是一个选项,我会在帖子中编辑它。