关于一个java参数传递的问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 20:47:28
----------------------------------------------------------------
class pen1 {
static int redValue=1,greenValue=2,blueValue=3;
static void getRGBColor(int red,int green,int blue){
red=redValue;
green=greenValue;
blue=blueValue;
}
}
public class Color1 {
public static void main(String args[]){
int r=-1,g=-1,b=-1;
pen1.getRGBColor(r,g,b);
System.out.println("red="+r+", green="+g+", blue="+b);
}
}
----------------------------------------------------------------
class RGBColor {
public int red,green,blue;
}
class pen2 {
static int redValue=1,greenValue=2,blueValue=3;
static void getRGBColor(RGBColor aColor){
aColor.red=redValue;
aColor.green=greenValue;
aColor.blue=blueValue;
}
}
public class Color2 {
static RGBColor pen2Color=new RGBColor();
public static void main(String args[]){

首先你要知道什么是值类型和引用类型

值类型传参时是传值,引用类型传参时是传引用(也就是C/C++ 里面的指针)所有的基本类型都是值类型,如:int,float,bool .所有的类实例都是引用类型的

你第一个程序是传值,而第二个程序是传引用.