形参与实参

来源:互联网 发布:网络图片头像男生背影 编辑:程序博客网 时间:2024/04/29 22:23

直白的讲,形参是形式上的参数,实参是实际的参数;形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,而不确定接受的实参具体内容是多少;实参就是传递给函数(方法)对应形参的具体内容(值),形参的初始指(内容)由实参决定.形参在函数(方法)结束返回后就被释放了.


到这里,就又出现程序设计语言中的另一通用概念参数传递方式,传值和传址;

1.传值方式,只是将实参的值的拷贝传递给函数(方法),在方法内对形参进行操作,其对象是实参的拷贝,对实参不能造成影响.在方法结束返回后,形参被释放丢弃,实参的内容并不会改变。


例子1

public class ValueTest {public static void main(String[] args) {String str = "a";say(str);System.out.println(str);}private static void say(String str) {str = "a" + "b";}}

输出结果:a


2.传址方式,将实参的地址传递给函数(方法),在方法内对形参进行操作即等于对实参进行相同的操作, 在方法结束返回后,形参同样被释放,实参的内容将会是对形参进行操作的结果。


例子2:


public class AdressTest {public static void main(String[] args) {Student s = new Student();s.setName("zhangsan");s.setAge(21);change(s);System.out.println(s);}private static void change(Student s) {s.setName("lisi");s.setAge(22);}}class Student {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + "]";}}

输出结果:Student [name=lisi, age=22]


	
				
		
原创粉丝点击