Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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 在android中创建对象_Java_Android - Fatal编程技术网

Java 在android中创建对象

Java 在android中创建对象,java,android,Java,Android,我在android studio上创建类的对象时遇到问题。我创建了几个名为Fan、Light和Device的类 当我尝试在MainActivity.java中实例化风扇和灯光时,会出现以下错误: 字段“myFan”从未使用过 无法解析符号“breakDevice” 代码如下所示。我希望能找到解决这个问题的办法。 谢谢 MainActivity.java Fan.java java 您已将对象创建为字段 但是,不能在任何其他方法之外调用实例方法,因此必须在onCreate中使用break设备,或者

我在android studio上创建类的对象时遇到问题。我创建了几个名为Fan、Light和Device的类

当我尝试在MainActivity.java中实例化风扇和灯光时,会出现以下错误:

字段“myFan”从未使用过

无法解析符号“breakDevice”

代码如下所示。我希望能找到解决这个问题的办法。 谢谢

MainActivity.java

Fan.java

java


您已将对象创建为字段

但是,不能在任何其他方法之外调用实例方法,因此必须在onCreate中使用break设备,或者作为按钮单击事件的一部分,例如

MainActivity.java


实例化是正确的,但您只能在方法内部访问对象的方法,而不能在类级别上访问

您可以在由Maharaja或其他方法采样的onCreate方法中访问它

public class MainActivity extends Activity 
{
    //Instantiate object on global or class level
    public Light myLight = new Light();
    Fan myFan = new Fan();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        executeObjectCommands();
    }

    //You can execute your commands inside this method
    //You can also separate them in different methods and return something if needed
    public void executeObjectCommands()
    {
        myFan.breakDevice();
        myLight.breakDevice();
    }
}

你应该叫你的'myFan.breakDevice;myLight.breakDevice;`在某些方法中,比如在onCreate中;FWIW,不要将Android日志方法用作POJO类的一部分
package com.example.codealong3;

import android.util.Log;

public class Fan extends Device{

    public Fan() {
        setDeviceName("FAN");
    }

    @Override
    public void breakDevice() {
        Log.e(getDeviceName(), "BANG ! It's broken");
    }
}
package com.example.codealong3;

import android.util.Log;

public class Light extends Device {

    public Light() {
        setDeviceName("LIGHT");
    }

    @Override
    public void breakDevice() {
        Log.e(getDeviceName(), "Glass Everywhere! .. I guess that's not bad");
    }
}
 public class MainActivity extends Activity 
    {

        public Light myLight = new Light();

        Fan myFan = new Fan();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            myFan.breakDevice();

            myLight.breakDevice();  
      }    

    }
public class MainActivity extends Activity 
{
    //Instantiate object on global or class level
    public Light myLight = new Light();
    Fan myFan = new Fan();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        executeObjectCommands();
    }

    //You can execute your commands inside this method
    //You can also separate them in different methods and return something if needed
    public void executeObjectCommands()
    {
        myFan.breakDevice();
        myLight.breakDevice();
    }
}