java 需要传递类对象为参数的时候,几种方法

1、直接

抽象类 对象 = new 抽象类(){

                                        //重写此抽象类的抽象方法

                           };

例子:

 
  
private TimerTask t1 = new TimerTask(){

@Override
public void run() {
// TODO Auto-generated method stub
//在此实现该抽象方法
}

};

外层

 
  
public class TimerActivity2 extends Activity {
/** Called when the activity is first created. */
public Timer timer = new Timer();
private TimerTask t1 = new TimerTask(){

@Override
public void run() {
// TODO Auto-generated method stub

}

};

@Override
public void onCreate(Bundle savedInstanceState) {
..}
}

2、抽象类 对象 = new 子类();

      接口/实现类 对象= new 实现类()

  class 子类 extends 抽象类{

//实现此抽象类的抽象方法即可。

}

class 实现类 implements 接口{

//实现此接口的抽象方法即可

}

例子:

 
  
public class TimerActivity2 extends Activity {
/** Called when the activity is first created. */
public Timer timer = new Timer();

private TimerTask tTask = new MyTimerTask();
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);

}

// 子类
class MyTimerTask extends java.util.TimerTask {

@Override
public void run() {
// TODO Auto-generated method stub
//在此实现该抽象方法              
}

}
........
.......
}

接口时:

 
  
......
// 某处
// MySensorEventListener mSensorEventListener;
SensorEventListener mSensorEventListener;
.....
// 某处 ,定义和赋值可以写在一句话里面
mSensorEventListener = new MySensorEventListener();

.............
.......
// 某处
class MySensorEventListener implements SensorEventListener {

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}

@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
//在此做方法的实现即可    
}
}

3、直接把对象创建出来,比如在参数中需要用到某个类对象的时候,除了上述方法以外,也可以直接把此对象创建出来。

public void method(class obiect,,);

()中就可以这么写

(new (抽象类/接口(){

//在这实现抽象方法

}))

例子:

    

 
  
b1.setOnClickListener( new Button.OnClickListener() {

@Override
public void onClick(View arg0) {
// 定义计时器
timer = new Timer();
timer.schedule(
new TimerTask() {

// TimerTask 是个抽象类,实现的是Runable类
@Override
public void run() {
                         
}

},
1000 , 200 );
}
});
 此例子中,
new Button.OnClickListener()是一个接口对象,实现onClick这个接口的抽象方法。记住!不需要这个要让外部activity实现接口。
new TimerTask() 是一个抽象类对象,里面也要实现run()这个抽象类的抽象方法。

转载于:https://www.cnblogs.com/snowdrop/articles/2037848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值