📄 4.2.txt
字号:
1.定义方法时参数为基本类型,实参和形参值传递的情况
例: public class A1
{
public void fun(int a) //只对a 的值发生变化.
{
a=100;
}
}
----------------------------------------------
public class TestA1
{
public static void main(String [] args)
{
int i=9;
System.out.println(i);
A1 aa=new A1();
aa.fun(i); //以基本数据类型作方法,调用方法的机制是传值.
System.out.println(i);
}
}
注:程序运行的结果i的值不变.
2.定义方法时参数为引用类型,实参和形参值传递的情况
例: public class Y1 {
public int age; //定义类变量
public String name; //定义类变量
public Y1(){} //定义默认的构造方法
public Y1(String a,int b) //定义带参数的构造方法
{
name=a;
age=b;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
}
--------------------------------------------
public class Y2 {
public void fun(Y1 aa)
{
//aa.name="tom";
aa.setName("tom"); //修改的是实参传过来的对象的属性
Y1 bb=new Y1("xiao",23); //创建一个新的对象
aa=bb; //对其重新赋值
System.out.println(bb.age);
System.out.println(bb.name);
//aa.age=11;
aa.setAge(11); //修改的是赋值的对象的属性
System.out.println(bb.age);
}
}
-------------------------------------------------------
public class TestY2 {
public static void main(String[] args) {
Y1 cc=new Y1("xiaoben",24);
System.out.println("Befor invoke change(boy) "+ cc.name + " " + cc.age);
Y2 dd=new Y2();
dd.fun(cc); //引用类型作为参数,若方法中有对与赋值的,
在之前修改的是实参的,之后修改的是赋值的对象 。
System.out.println("Befor invoke change(boy) "+cc.name + " " + cc.age);
}
}
注:对象cc的值发生了变化。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -