码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA基础知识_对象

时间:2017-03-29 01:05:36      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:space   oid   引用   ros   内存区域   sans   color   方法   oat   

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

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

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基础知识_对象

标签:space   oid   引用   ros   内存区域   sans   color   方法   oat   

原文地址:http://www.cnblogs.com/NextLight/p/6637670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!