在java中使用不同构造函数中的1个变量

时间:2013-06-20 08:56:54

标签: java variables constructor

@Override
public void onIrEvent(IREvent e) {
    // TODO Auto-generated method stub

}


ardrone.addAttitudeUpdateListener(new AttitudeListener() {
        @Override
        public void attitudeUpdated(float pitch, float roll, float yaw, int altitude) {
        System.out.println("altitude : " + altitude);
        }
    });

我想从第二个构造函数中获取变量高度,并在第一个构造函数中使用它。我试图直接使用它,它没有工作。我也尝试在第一个构造函数中构造第二个构造函数,但也没有工作。任何想法?

之前感谢

2 个答案:

答案 0 :(得分:1)

创建一个实现AttitudeListener的新类。使用altitude的setter和getter方法设置实例变量altitude,并在第一个和第二个构造函数中相应地使用它。

示例:在AttitudeListenerImpl.java

class AttitudeListenerImpl implements AttitudeListener
{
    private int altitude;
    public void setAltitude(int altitude)
    {
        this.altitude = altitude;
    }
    public int getAltitude()
    {
        return this.altitude;
    }
    @Override
    public void attitudeUpdated(float pitch, float roll, float yaw, int altitude) 
    {
        setAltitude(altitude);
        System.out.println("altitude : " + altitude);
    }
}

在其他代码中的用法:

AttitudeListener alti = new AttitudeListenerImpl();
alti.attitudeUpdated(1.0f,1.0f,1.0f,1);
ardrone.addAttitudeUpdateListener(alti);

@Override
public void onIrEvent(IREvent e) 
{
        // TODO Auto-generated method stub
        //to get the altitude:
         System.out.println("altitude : " + alti.getAltitude()); 

}

答案 1 :(得分:0)

我在这里看不到任何构造函数。你在谈论AttitudeListener吗?在这种情况下,您需要创建一个实现此接口的类。

然后你可以做的是构造函数链接,比如:

public class MyAttitudeListener implements AttitudeListener
{
    public MyAttitudeListener()
    {
        this(3); // this is like new MyAttitudeListener(3);
    }
    public MyAttitudeListener(int altitude)
    {
        // do some work
    }        
}

你能进一步解释一下你想要实现的目标吗?