Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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 我的代码有一个错误_Java_Android - Fatal编程技术网

Java 我的代码有一个错误

Java 我的代码有一个错误,java,android,Java,Android,它一直说构造函数是未定义的。我已经在某个地方读到,我需要声明没有参数的构造函数。我只是不知道怎么做 如果有人能帮忙,我对java和编程是新手。我的代码在下面 package com.alextrost.onscreenjoystickdemo; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics

它一直说构造函数是未定义的。我已经在某个地方读到,我需要声明没有参数的构造函数。我只是不知道怎么做

如果有人能帮忙,我对java和编程是新手。我的代码在下面

package com.alextrost.onscreenjoystickdemo;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Handler;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class GameSurface1 extends SurfaceView implements SurfaceHolder.Callback { 

private Context _context1;     
private GameThread1 _thread1;
private GameControls1 _controls1;
private GameJoystick1 _joystick1;

private Bitmap _pointer; 

public GameSurface1(Context context) {
    super(context);    
    // TODO Auto-generated constructor stub
    _context1 = context; 
    init1();      
}

private void init1(){

    SurfaceHolder holder = getHolder();
    holder.addCallback( this);



    //  A call will be made to start it later
    _thread1 = new GameThread1(holder, _context1, new Handler(),this);
    setFocusable(true);


    _joystick1 = new GameJoystick1(getContext().getResources());


    _pointer = (Bitmap)BitmapFactory.decodeResource(getResources(), R.drawable.icon);

    //controls
    _controls1 = new GameControls1();
    setOnTouchListener(_controls1);



}


public void doDraw1(Canvas canvas){

    //update the pointer
    _controls1.update(null);

    //draw the pointer
    canvas.drawBitmap(_pointer, _controls1._pointerPosition1.x, _controls1._pointerPosition1.y, null);

    //draw the joystick background
    canvas.drawBitmap(_joystick1.get_joystickBg(), 50,220, null);  

    //draw the dragable joystick
    canvas.drawBitmap(_joystick1.get_joystick(),_controls1._touchingPoint1.x -357, _controls1._touchingPoint1.y -26, null);

}



//these methods are overridden from the SurfaceView super class. They are automatically called 
//when a SurfaceView is created, resumed or suspended.
@Override 
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {}
private boolean retry1;
@Override 
public void surfaceDestroyed(SurfaceHolder arg0) {
    retry1 = true;
    //code to end gameloop
    _thread1.state1 = GameThread.STOPED;
    while (retry1) {
        try {
            //code to kill Thread
            _thread1.join();
            retry1 = false;
        } catch (InterruptedException e) {
        }
    }

}

@Override 
public void surfaceCreated(SurfaceHolder arg0) {
    if(_thread1.state1==GameThread1.PAUSED){
        //When game is opened again in the Android OS
        _thread1 = new GameThread1(getHolder(), _context1, new Handler(),this);
        _thread1.start();
    }else{
        //creating the game Thread for the first time
        _thread1.start();
    }
}

public void Update() {
    // TODO Auto-generated method stub

}

}

构造函数是与类GameSurface1同名且没有返回值的方法,因此这是一个构造函数:-

public GameSurface1(Context context) 
…这是一个没有参数的构造函数:-

public GameSurface1() 
来自维基百科:

默认构造函数:

如果程序员没有为实例提供构造函数 类,大多数语言将提供默认构造函数。这个 默认构造函数的行为依赖于语言。可能 将数据成员初始化为零或其他相同的值,也可以这样做 什么都没有。在C++中,如果数组需要默认构造函数 要创建的类对象的数量。其他语言Java、C、VB .NET没有这样的限制

默认构造函数的示例:

参数化构造函数:

可以接受参数的构造函数称为参数化构造函数 构造器。参数的数量可以大于或等于 one1.在参数化构造函数中声明对象时, 初始值必须作为参数传递给构造函数 作用对象声明的正常方式可能不起作用。这个 构造函数可以显式或隐式调用。方法 隐式调用构造函数也被称为速记 方法

参数化构造函数示例:


请始终在问题中添加错误消息。是的,但GameSurface1扩展了SurfaceView,并且SurfaceView没有无参数构造函数。所以我想添加一个无参数构造函数并不能解决他的问题。那么你不能创建一个无参数构造函数,它告诉你应该在哪里?是的,你回答了我已经读过的部分,我需要声明一个无参数的构造函数。我只是不知道怎么做。。但这里真正的问题是它一直说构造函数是未定义的。我们需要OP的真正错误信息。我回答了问题中唯一可以回答的部分。如果有更多的信息,我会扩展我的答案。是的,真正的问题是它一直说构造函数是未定义的。很抱歉,我让你们搞糊涂了T.塔威引用了你们的话。
public GameSurface1();
public GameSurface1(Context context);