【问题标题】:using 1 variables in different constructor in java在java的不同构造函数中使用1个变量
【发布时间】:2013-06-20 08:56:54
【问题描述】:
@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);
        }
    });

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

感谢之前

【问题讨论】:

    标签: java variables constructor


    【解决方案1】:

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

    示例:在 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()); 
    
    }
    

    【讨论】:

    • 我应该把这个放在哪里?主要构造函数? AttitudeListener alti = new AttitudeListenerImpl(); alti.attitudeUpdated(1.0f,1.0f,1.0f,1); ardrone.addAttitudeUpdateListener(alti);
    • 这取决于您要达到的目标!
    【解决方案2】:

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

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

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

    您能否进一步解释您正在努力实现的目标?

    【讨论】:

    • 尝试使用 wiimote 控制四轴飞行器。我需要控制的高度变量。
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 2020-10-19
    • 1970-01-01
    • 2012-11-10
    • 2023-03-24
    • 1970-01-01
    • 2013-06-20
    • 2013-09-11
    相关资源
    最近更新 更多