java传递对象
A. java 需要传递类对象为参数的时候,几种方法
1、直接抽象类 对象 = new 抽象类(){ //重写此抽象类的抽象方法};例子:privateTimerTask t1=newTimerTask(){@Overridepublicvoidrun() {//TODO Auto-generated method stub //在此实现该抽象方法}};外层 {/**Called when the activity is first created.*/publicTimer timer=newTimer();privateTimerTask t1=newTimerTask(){@Overridepublicvoidrun() {//TODO Auto-generated method stub}};@OverridepublicvoidonCreate(Bundle savedInstanceState) { ..}}2、抽象类 对象 = new 子类(); 接口/实现类 对象= new 实现类() class 子类 extends 抽象类{ //实现此抽象类的抽象方法即可。}class 实现类 implements 接口{ //实现此接口的抽象方法即可}例子: {/**Called when the activity is first created.*/publicTimer timer=newTimer();privateTimerTask tTask=newMyTimerTask();@OverridepublicvoidonCreate(Bundle savedInstanceState) {super .onCreate(savedInstanceState); setContentView(R.layout.main);}//子类classMyTimerTaskextendsjava.util.TimerTask {@Overridepublicvoidrun() {//TODO Auto-generated method stub //在此实现该抽象方法}} .......}接口时: ......//某处//MySensorEventListener mSensorEventListener; SensorEventListener mSensorEventListener; .....//某处 ,定义和赋值可以写在一句话里面 mSensorEventListener=newMySensorEventListener(); .......//某处 {@(Sensor sensor, intaccuracy) {//TODO Auto-generated method stub}@(SensorEvent event) {//TODO Auto-generated method stub //在此做方法的实现即可}}3、直接把对象创建出来,比如在参数中需要用到某个类对象的时候,除了上述方法以外,也可以直接把此对象创建出来。 public void method(class obiect,,); ()中就可以这么写 (new (抽象类/接口(){ //在这实现抽象方法}))例子: b1.setOnClickListener(newButton.OnClickListener() {@OverridepublicvoidonClick(View arg0) {//定义计时器timer=newTimer();timer.schele(newTimerTask() {//TimerTask 是个抽象类,实现的是Runable类@Overridepublicvoidrun() {}}, 1000, 200);}});此例子中,newButton.OnClickListener()是一个接口对象,实现onClick这个接口的抽象方法。记住!不需要这个要让外部activity实现接口。 是一个抽象类对象,里面也要实现run()这个抽象类的抽象方法。
B. java如何进行进行对象传递
你所说的“B文件中的a' =null,报异常,”
不能说明“a没有传递过来”而是B文件中:
A a' = new A();“ a' ” 对象就没有创建成功。
解决方法:你可将 A文件中的public A aa;“aa”设置成静态(static)的。
C. java 静态方法里传对象
要看你静态方法里的内部实现.
传对象是一个地址引用的传递.一般来说是执行完方法后就不关静态方法的事了.那么这个对象是否存在内存当中就看对象自己的生命周期.
但是,如果你在静态方法里做了固定引用,那就不好说了.比如,你在静态方法中创建了一个集合,传过来的对象引用你加入到了集合中,而一且也没清空集合.这样,对于那个对象来说,不管什么时候,都会至少有一个引用指向他,也就是静态方法中的集合,那么即使对象已经无用处,可垃圾收集器也不会收集它,它就一直存在内存了
D. Java 中实例化后的对象间如何交互传递数据
一般用传参来解决的,示例如下:
package test20210106;
/**灯泡类*/
public class Bulb {
//发光量
private double glowAmount;
//get、set方法
public double getGlowAmount() {
return glowAmount;
}
public void setGlowAmount(double glowAmount) {
this.glowAmount = glowAmount;
}
}
package test20210106;
/**开关类*/
public class Switch {
/**设置发光量30%*/
public void glowAmount30(Bulb bulb){
bulb.setGlowAmount(0.3);
System.out.println("当前灯泡的发光量是: "+(int)(bulb.getGlowAmount()*100)+"%");
}
/**设置发光量60%*/
public void glowAmount60(Bulb bulb){
bulb.setGlowAmount(0.6);
System.out.println("当前灯泡的发光量是: "+(int)(bulb.getGlowAmount()*100)+"%");
}
/**设置发光量100%*/
public void glowAmount100(Bulb bulb){
bulb.setGlowAmount(1);
System.out.println("当前灯泡的发光量是: "+(int)(bulb.getGlowAmount()*100)+"%");
}
}
package test20210106;
//
public class Test {
public static void main(String[] args) {
Bulb bulb = new Bulb();
Switch s = new Switch();
s.glowAmount30(bulb);
s.glowAmount60(bulb);
s.glowAmount100(bulb);
}
}
E. java对象传递问题
haha a1 中haha代表你要传入的参数类型,也就是你的haha类
a1 表示的是变量名,这个没什么解释的,有了变量名后面才好
进行调用,变量名是可以随便起的。
F. java中的参数(对象)是怎样传递的
基本类型传值,比如int,float,char,double
引用类型传引用,也就是地址,比如数组,自己创建的类的对象,
传值对原来的值没有影响,传引用有影响。传值直接把原来的数拷贝一份,和原来的数没有关系了。传引用,比如对象是a,a指向一个地址,这个地址里放它的各种属性,你把a传过去就相当于告诉程序要修改那个地址里的东西,不改变a的值(a本身是个地址),a还是指向那个地址,不过地址里的数据会发生改变,会影响到a.属性的值。
最后,有一个特殊的,String,它虽然是引用类型,传的是地址,但是对它进行操作不影响原来的字符串,因为它定义的时候是用final修饰的,一修改就自动创建新的副本。
G. java 需要传递类对象为参数的时候,几种方法
下面给你举例3种方法:
1、直接抽象类
对象 = new 抽象类()
{
//重写此抽象类的抽象方法
};
2、抽象类
对象 = new 子类();
接口/实现类 对象= new 实现类()
class 子类 extends 抽象类{
//实现此抽象类的抽象方法即可。
}
class 实现类 implements 接口{
//实现此接口的抽象方法即可
}
3、直接把对象创建出来,比如在参数中需要用到某个类对象的时候,除了上述方法以外,也可以直接把此对象创建出来。
public void method(class obiect,,);
()中就可以这么写
(new (抽象类/接口(){
//在这实现抽象方法
}))
H. java可否引用传递一个对象
严格来说java是没有引用传递的,所谓的传对象和数组,实际上是通过原变量的副本指向原变量而修改的,所以都叫值传递,不过给人的感觉是引用传递,建议搜索一些博客讲解,这样更容易理解