Java 从其他类引用int
如果我想引用另一个类中的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);
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与它混淆。至于缩进,我不知道如何在这个网站上发布代码……我的代码看起来好多了