Java——对象和引用

参数传递

对象和引用的概念

- 对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象。

- 引用:是一个变量,不一定是局部变量,还可能是成员变量(husband wife例子)。引用保存了内存地址,指向了堆内存当中的对象。

所有访问实例相关的数据,都需要通过“ 引用. ”的方式访问,因为只有通过引用才能找到对象。

只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。

例: class Student{

        Computer com;          //com是一个引用【实例变量】

                public static void doSome();{

Computer cc; //cc是一个引用【局部变量】

        }

}

参数的传递:

主要研究和学习的是方法再调用的时候,涉及到参数传递的问题,到底是怎么传递数据的呢?

在以往的程序中向方法中所用的参数是形式参数,是基本数据类型(如:int i),此时进行的只是值传递,只是将字面值“ 复制 ”过去了一份,这个数据的值本身没有做任何修改。

但如果所传递的形参不是基本数据类型,而是引用数据类型(如:User u)。

public class Test02 {
	public static void main(String[] args) {
	
		User u = new User(20);
		add(u);
		System.out.println("main-->" + u.age);	//21
		
	}	
	
	public static void add(User u) {
			u.age++;
			System.out.println("add-->" + u.age);	//21
		}
}

class User {
	
	int age;

	//有惨数构造器
	public User(int age) {
		super();
		this.age = age;
	}
	
}

上述代码中,传递u给add方法的时候,实际上传递的是u变量中保存的值,只不过这个值是一个Java对象的内存地址。

可理解为 User u = 0x1234;

               add (0x1234);


结论:

        方法调用的时候,涉及到参数传递的问题,传递的时候,Java只遵循一种语法机制,就是将变量中保存的 " 值 " 传递过去了,只不过有时候这个值是一个字面值(10),有时候这个值是另一个Java对象的内存地址(0x1234)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值