java对象,引用 实例(转)

java对象,引用 实例

谈到引用,顾名思义,就在引用一个东东,这个东东就是内存地址,扯到内存地址了,那就复杂咯。还是从实际帮你分析。


class Picture { 
int width; 
int length; 
...... 
} 
Picture(int x,int y) 
{ 
width=x; 
lenth=y; 
} 
Picture pic = new Picture(3, 4); 


1:为什么要使用到类?
这里创建了Picture类,类就是一个模子,是一个制造Picture图片的模子,java里面为什么要有类?如果没有类,我们表示一张图片的 时候,要申明一个宽width1,长length1等等属性,我们表示第二张图片的时间,又要申明一个宽width2,长length2,申明N张图片, 不晓得申明多少个宽和长咯,好累哦。
有了类,就方便啦,Picture pic1= new Picture();Picture pic2..Picture pic3....;调用属性 就这样pic1.width,pic2.width,是不很方便,这里是为什么要使用到类的原因。


2:讲下实例,对象,对象的引用;
你定义完了一个Picture类的时候,里面的长,宽的属性并没被分配格子来储存这2个属性,定义的Picture类 仅仅是一个模型,不是实实在在的图片,java里面通过new来制造真正的图片,new Picture(3,4)是制造了一个宽为3,长为4的图片,于是乎,我们就可以通过new Picture(3,4)来调用 这个图片的属性啦,new Picture(3,4).width,new Picture(3,4).length。
你可能有疑问了,为什么用new Picture(3,4),后面的Picture(3,4)是什么?,其实它是初始化Picture的宽和长这2个属性,你想想,你定义一张真实的图片的 同时,肯定要设计好宽 和长的大小啦。所以new 后面紧跟Picture(3,4),这个构造函数。有些教科书关于实例说的很不清楚,实际上,从上面看new Picture(3,4)就一个实例了,是一个实实在在的图片!
继续分析,我每次调用属性,总要new Picture(3,4).length,是不是太长了?
找个东西来代替new Picture(3,4)吧,我们就用pic1代替new Picture(3,4),那么调用属性就只需要pic1.length啦,pic1这个变量如何申明?Picture pic1,就这样申明啦!于是我们把他们等号起来Picture pic1=new Picture(3,4);那么就可以说pic1就是紧挨着后面等于的new Picture(3,4)这个对象,为什么是紧挨的呢?同样大小的照片可以有很多张,于是我们可以再new Picture(3,4) NEW一个图片出来,也是宽为3,长为4的,我后面new 出来的图片 就不等于 前面的pic1了。在Picture pic1=new Picture(3,4);中pic1是对象,或者叫它实例,后面紧挨的new Picture(3,4)也是对象,或者也叫它实例,它们2个是等价的。
那么对象的引用是?前面说,我们是用pic1代替new Picture(3,4),那么就可以说pic引用了紧挨着等号后面的那个实例图片或者对象,所以pic1也称为引用。
现在做总结:pic1是对象,是实例,还是这个对象的引用;new Picture(3,4)是一个实实在在的图片,只能是对象或者称为实例,不能称为引用!
-pic1其实存储了一个字节的内存地址,这个地址 就是new Picture(3,4)堆内存地址的第一个地址,也就是首地址-专业术语叫做,pic1指向了 new Picture(3,4)堆内存地址的首地址。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值