通过值传递参数
调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。
例如,下面的方法连续n次打印一个消息:
TestVoidMethod.java 文件代码:
public
static
void
nPrintln
(
String
message
,
int
n
)
{
for
(
int
i
=
0
;
i
<
n
;
i
++
)
{
System
.
out
.
println
(
message
)
;
}
}
示例
下面的例子演示按值传递的效果。
该程序创建一个方法,该方法用于交换两个变量。
TestPassByValue.java 文件代码:
public
class
TestPassByValue
{
public
static
void
main
(
String
[
]
args
)
{
int
num1
=
1
;
int
num2
=
2
;
System
.
out
.
println
(
"
交换前 num1 的值为:
"
+
num1
+
"
,num2 的值为:
"
+
num2
)
;
//
调用swap方法
swap
(
num1
,
num2
)
;
System
.
out
.
println
(
"
交换后 num1 的值为:
"
+
num1
+
"
,num2 的值为:
"
+
num2
)
;
}
/*
* 交换两个变量的方法
*/
public
static
void
swap
(
int
n1
,
int
n2
)
{
System
.
out
.
println
(
"
\t
进入 swap 方法
"
)
;
System
.
out
.
println
(
"
\t
\t
交换前 n1 的值为:
"
+
n1
+
"
,n2 的值:
"
+
n2
)
;
//
交换 n1 与 n2的值
int
temp
=
n1
;
n1
=
n2
;
n2
=
temp
;
System
.
out
.
println
(
"
\t
\t
交换后 n1 的值为
"
+
n1
+
"
,n2 的值:
"
+
n2
)
;
}
}
以上实例编译运行结果如下:
交换前 num1 的值为:1 ,num2 的值为:2 进入 swap 方法 交换前 n1 的值为:1,n2 的值:2 交换后 n1 的值为 2,n2 的值:1 交换后 num1 的值为:1 ,num2 的值为:2
传递两个参数调用swap方法。有趣的是,方法被调用后,实参的值并没有改变。
使用的max方法仅仅适用于int型数据
finalize() 方法
Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。
例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。
在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
finalize() 一般格式是:
protected
void
finalize
(
)
{
//
在这里终结代码
}
关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。
当然,Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用上面的方法。