Java入门(五)方法的分类和参数传递方式

在类中,方法也可以分为两类:实例方法和类方法(类方法用static修饰,称为静态方法)
类方法中,不能直接访问类的实例方法和实例变量。由于类方法不用实例化便可以访问,而实例变量则需要实例化后分配堆内存,因此没有实例化的实例方法和实例变量不能访问。

一、

在这里插入图片描述
同样,在访问类方法时,可以用“类名.方法名(参数列表)”或者“实例化.方法名(参数列表)”两种方法,即类不需要实例化也可以访问类方法。
访问实例化方法时,必须先实例化一个对象,然后采用“实例化.实例方法(参数列表)”的方式调用该实例方法。
在这里插入图片描述
在面向对象的程序设计中,对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系,在java中给一个对象传递消息是通过给相应的方法传递参数实现的。
参数传递分为两种:基本类型参数传递和引用类型参数传递。
基本类型参数传递是将一个实参传递给方法时,如果方法执行过程中改变了参数值,改变的只是形参,而原始的实参值则仍旧保持原来的值不变。
引用类型参数传递是将一个参数传递给方法时,方法接收的是引用变量的值,这个值是某个对象的内存地址。
当然,无论是基本类型参数传递还是引用类型参数传递,都属于值传递。

二、

一个基本类型参数传递,我们看到在执行完swap()方法后a、b的值没改变
在这里插入图片描述
在这里插入图片描述
代码解释:
第3行: main函数,程序的入口
第4行:声明int类型变量a,b并赋值1,2
第5行:控制台输出调用swap(方法前a,b的值
第6行:调用swap(方法,并将变量a, b的值当做参数传递给swap(
第9行:此时程序跳转到第9行执行函数swap,并获取形参值a=1,b=2
第10行:证明变量temp并将a值赋值给temp
第11行:将b值赋值给a
第12行:将temp储存的a值赋值给b
第13行:输出a, b值,观察结果
第7行:程序执行完swap(方法后跳转会第6行,紧接着执行第7行,输出a, b的值。

三、

在这里插入图片描述在这里插入图片描述
首先需要说明的是在一个java程序文件 (java) 中,可能有多个类,但是最多只能有一个是
public类型的,即共有类,共有类的名字要和该程序文件的名称保持一致。
我们都知道,实例化一个对象时返回的是内存中的一个地址,即b1, b2中储存
的不是数据1 ,2.而是储存数据的地址。
在执行swap(b1,b2)方法时,相当于将swap()方法的形参a,b指向b1, b2储存数据的内存地
址。所以在swap()方法中将其中储存的数字交换后,b1, b2中也一样跟随着改变。
对于图中代码详细意思可以参考我前几个专栏的内容,这里不再赘述。

猜你喜欢

转载自blog.csdn.net/sand_wich/article/details/105148617
今日推荐