Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.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 从其他类引用int_Java_Android - Fatal编程技术网

Java 从其他类引用int

Java 从其他类引用int,java,android,Java,Android,如果我想引用另一个类中的int,我会怎么做呢 public class Zoom extends View { private Drawable image; public int zoomControler = 20; public Zoom(Context context) { super(context); image=context.getResources().getDrawable(R.drawable.icon);

如果我想引用另一个类中的int,我会怎么做呢

public class Zoom extends View {
    private Drawable image;
    public int zoomControler = 20;

    public Zoom(Context context) {
        super(context);
        image=context.getResources().getDrawable(R.drawable.icon);
        setFocusable(true);      
    }

    @Override            
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        image.setBounds((getWidth ()/2)-zoomControler,
                        (getHeight()/2)-zoomControler,
                        (getWidth ()/2)+zoomControler,
                        (getHeight()/2)+zoomControler);
        image.draw(canvas);
    }
}

class HelloOnTouchListener implements OnTouchListener{
    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
        return true;
    }
}

在本例中,我想在第二个
HelloOnTouchListener
类中引用第一个类中的
ZoomController

您需要在第一个类中创建一个类似的getter

public int getZoomController()
{
    return zoomController;
}
而在你的听众中,它将是

((Zoom) arg0).getZoomController();

您需要在第一个类中创建一个getter,例如

public int getZoomController()
{
    return zoomController;
}
而在你的听众中,它将是

((Zoom) arg0).getZoomController();

虽然@jsmith的答案是推荐的方法,但是
zoomcontroller
(sic)属性是公共的,这意味着您也可以这样做:

int z = ((Zoom) arg0).zoomControler;
甚至

((Zoom) arg0).zoomControler = z;

然而,像这样访问属性是不好的风格,甚至暴露属性也是不好的风格。您可能应该将
zoomcontroller
更改为
private
,以便其他类必须通过getter和setter访问它。

虽然@jsmith的答案是推荐的方法,但是
zoomcontroller
(sic)属性是公共的,这意味着您也可以这样做:

int z = ((Zoom) arg0).zoomControler;
甚至

((Zoom) arg0).zoomControler = z;

然而,像这样访问属性是不好的风格,甚至暴露属性也是不好的风格。您可能应该将
zoomcontroller
更改为
private
,以便其他类必须通过getter和setter访问它。

您确实应该在格式化代码方面付出一些努力。一致的缩进和间距使代码更具可读性。代码中的拼写错误也令人讨厌:它是带有两个L的“controller”。我知道如何拼写我更改的controller,这样我就不会让ZoomControl与它混淆。至于缩进,我不知道如何在这个网站上发布代码……我的代码看起来非常好。你真的应该在格式化代码方面付出一些努力。一致的缩进和间距使代码更具可读性。代码中的拼写错误也令人讨厌:它是带有两个L的“controller”。我知道如何拼写我更改的controller,这样就不会让ZoomControl与它混淆。至于缩进,我不知道如何在这个网站上发布代码……我的代码看起来好多了