对象可以作为参数传递给方法
传递对象不是将对象本身的值传递给形参,而是将对象的引用值传递给形参
void method1(Num num){
num.i+=10;
}
method1方法体内形参内容的任何改动,也是对对象本身的改动
void method2(Num num){
num=new Num();
num.i=100;
}
这里的对象内容并没有改变
因为Java中对象作为参数传递时,相当于是把对象在内存中的地址拷贝了一份传给参数
method1中,因为形参和对象有相同的内存地址,所以对形参的修改,自然对象本身内容也跟着改变。
而method2中,刚开始和方法1中一样,他们仍然是指向相同的内存地址,但是new Num(),等于开辟了一块新的内存区域
这就导致形参与对象存放地址不一样了,自然对形参的改变不会反应在对象上。
this:
表示当前对象的引用
1.返回当前对象,或把当前对象作为参数传递给其他方法时
Classname method(){
return this;}
2.如果局部变量与所属类的属性成员变量重名时(封装属性时)
this.name=name;
3.一个构造方法中调用其所属类的另一个构造方法
不过,只可调用一次,且要在方法体内任何语句之前
final:
被Final定义的对象只能指向唯一一个对象,不可以将它在指向其它对象
但是一个对象本身的值却是可以改变,只是对象引用(指向)不可变。
时间: 2024-10-23 10:26:04