「java传递类参数」java参数的传递方式有哪些

博主:adminadmin 2023-01-27 01:36:08 374

本篇文章给大家谈谈java传递类参数,以及java参数的传递方式有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 参数传递问题

Java的参数传递总结:

JAVA的参数传递总是传"值",但是传值方式也分为两种方式,它们是靠传递参数的类型区分的。这两种类型分别为JAVA的基础类型和Object(对象)类型;基础类型包括boolean,byte,short,char,int,long,float,double,而Object就是对象,如数组.在参数为基础类型时,见代码:

public class A{

public static void main(String arg[]){

int a=3;

method1(a);

System.out.println(a);

}

public static void method1(int a){

a=4;

}

}

此时结果的输出将是1,而且只要你的值在Main函数中没变,a的值不管怎么传都不回变,这是因为a是传值,而这个"值"是a的一个拷贝,a的值在传递后的改变只是改变了a的拷贝的内容,并没有改变真正的a的值;对于参数为对象

public class A{ public class A{

public static void main(String arg[]){ public static void main(String arg[]){

int[] a=new int[1]; int[] a=new int[1];

a[0]=3; a[0]=3;

method1(a); method1(a);

System.out.println(a[0]); System.out.println(a[0]);

} }

public static void method1(int[] a){ public static void method1(int[] a){

a[0]--; a=new int[0];

} a[0]=4;

} }

}

左边的结果将是2,右边的结果将是3(未变),原因是:在传递的参数为对象时,这个传递的"值"中放的内容实际上是对向所在的地址,左边的情况是指针定位到对象的地址后,在上面把内容给改了,所以数组的值后会改变,而右边的情况为给对象新分配了一个指针到新的地址上面去,所以所有的操作都在新的地址上面,并不会影响原来的值。注:对于String,Interger,Boolean,Double等的系统对象,它们虽然是Object,但是任何方式的传递参数的值得改变并不会影响原来的值。

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

1、直接抽象类 对象 = new 抽象类(){ //重写此抽象类的抽象方法};例子:privateTimerTask t1=newTimerTask(){@Overridepublicvoidrun() {//TODO Auto-generated method stub //在此实现该抽象方法}};外层publicclassTimerActivity2extendsActivity {/**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 接口{ //实现此接口的抽象方法即可}例子:publicclassTimerActivity2extendsActivity {/**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(); .......//某处classMySensorEventListenerimplementsSensorEventListener {@OverridepublicvoidonAccuracyChanged(Sensor sensor, intaccuracy) {//TODO Auto-generated method stub}@OverridepublicvoidonSensorChanged(SensorEvent event) {//TODO Auto-generated method stub //在此做方法的实现即可}}3、直接把对象创建出来,比如在参数中需要用到某个类对象的时候,除了上述方法以外,也可以直接把此对象创建出来。 public void method(class obiect,,); ()中就可以这么写 (new (抽象类/接口(){ //在这实现抽象方法}))例子: b1.setOnClickListener(newButton.OnClickListener() {@OverridepublicvoidonClick(View arg0) {//定义计时器timer=newTimer();timer.schedule(newTimerTask() {//TimerTask 是个抽象类,实现的是Runable类@Overridepublicvoidrun() {}}, 1000, 200);}});此例子中,newButton.OnClickListener()是一个接口对象,实现onClick这个接口的抽象方法。记住!不需要这个要让外部activity实现接口。 是一个抽象类对象,里面也要实现run()这个抽象类的抽象方法。

java 怎么传递参数?

传对象,之后通过反射,getClass()获得对应的类,具体代码如下

Class?type=object.getClass();

Method method=type.getMethod("getId",null);//getId为getId()方法

Object id=method.invoke(object,null);

关于java参数传递

Java基本数据类型传入方法是值传递,也就是将值赋值给方法参数,在方法在改参数与原变量无关。

而其他三个都是引用数据类型,传递的都是地址,方法根据地址操作都是原对象,所以修改了。

java 中怎样实现类类型作为参数传递

直接把参数类型定义为对应的类,就是类类型。

1、定一个类

public class A{//定义一个类A

}

2、定一个方法,类A作为参数传递public class B{//定义一个类B

public void show(A a){//类作为参数传递

}

}

关于java传递类参数和java参数的传递方式有哪些的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。