首页 > 代码库 > JAVA基础知识_对象

JAVA基础知识_对象

对象可以作为参数传递给方法

传递对象不是将对象本身的值传递给形参,而是将对象的引用值传递给形参

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定义的对象只能指向唯一一个对象,不可以将它在指向其它对象

但是一个对象本身的值却是可以改变,只是对象引用(指向)不可变。

 

JAVA基础知识_对象