⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.2.txt

📁 java学习的点滴
💻 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 + -