2015-04-04 38 views
0
public perform Ulti (Location origin, int number) { 

     Map i = new Map(origin, i.getDestination(), number); 

} 

Map的构造函数是(Location n,Location m,int k);(JAVA)在一行中初始化对象 - 调用方法

我的问题是,我不知道目的地,但在Map中有一个名为getDestination()的方法。我知道的来源是第一个参数,我怎样才能使用新创建的对象的方法?

注意:地图对象不能为空; //所以我不确定什么其他的占位符我可能会使用

+1

这可不行,因为我地图是不是初始化。 无论如何,如果你有一个方法在我,为了得到目的地,为什么你需要通过目的地我作为参数?你不能只在像this.getDestination()这样的Map构造函数中调用getDestination()? – 2015-04-04 02:48:36

+0

所以你的'Map'是一个具体的类? – Razib 2015-04-04 02:56:39

+0

(这不能工作,因为'我'还没有在范围内......不用担心它没有被初始化;这会导致像“*无法找到符号* ..变量i”的错误。) – user2864740 2015-04-04 03:25:47

回答

0

如果你有保存目的地的变量,所以你必须将其设置第一

例如:

map i = new map(); 
i.setDistination("----"); 
String distination = i.getDistination(); 

,但在你的榜样你可以简单地键入一个目的地或从其他对象获取它。

+0

这不会工作地图有3个参数。 (来源,目的地,号码)。 我不需要设置目的地,目的地是在Map类中预定义的。我需要获取目标作为对象的参数。 – noobatrilla 2015-04-04 03:22:05

+0

如果目的地尚未设置,那么你想返回什么! 一个例子:你可以使一个构造函数不接收目的地,找到目的地然后得到目的地 – 2015-04-04 03:34:43

+0

啊我看到了,谢谢你生病了试试。 – noobatrilla 2015-04-04 03:36:55

0

如果不创建对象的方法,则无法调用。如果可以的话,传递对象本身已有的值是没有意义的。什么是目的地?如果您有其他方式访问它,只需向Map添加一个空的构造函数。 像这样

public class Map{ 
    public Map(){ 

    } 
    //Rest of code 
} 

现在你可以创建一个没有目标对象: 地图I =新地图(); ,然后设置目的地后,你有它。

1

你可以做以下的事情你Map类中 -

class Map{ 

    Location origin; 
    Location destination; 
    int number; 

    //create a no argument constructor so that your Map can 
    // be created without any constructor whenever required 
    Map(){ 

    } 

    //create a constructor with two argument 
    Map(Location origin, int number){ 
     this.origin = origin; 
     this.number = number; 
    } 


    //getter and setter methods. 

} 

现在你可以创建Map实例/对象这样的 -

Map i = new Map(origin, number); 
Location m = // some code for generating Location as destination 
i.setDestination(m); 
+0

谢谢,我不知道你可以创建一个空的构造函数。似乎看起来不错。再次感谢。 – noobatrilla 2015-04-04 03:45:19