`

java对象,引用 实例(转)

    博客分类:
  • 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)堆内存地址的首地址。

分享到:
评论

相关推荐

    java中对象和对象引用的区别!

    JAVA表面上看起来没有指针,但它的引用其实质就是一个指针,引用里面存放的并不是对象,而是该对象的地址,使得该引用指向了对象。在JAVA里,“=”语句不应该被翻译成赋值语句,因为它所执行的确实不是一个赋值的...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Java中的对象和对象引用实例浅析

    主要介绍了Java中的对象和对象引用,实例分析了对象与对象引用的概念与相关使用技巧,需要的朋友可以参考下

    JAVA上百实例源码以及开源项目源代码 java开源包2

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    [Java] 对象类型转换和运算符 instanceof 学习笔记 [#子类转父类 #父类转子类 #对象和引用的区别]

    [Java] 对象类型转换和运算符 instanceof 学习笔记 欢迎大家收看 把简单的问题变复杂系列 : ) 一、类型转换使用的情景:   在需要将一个继承链下把一个类的对象转换为另一个类的对象(注意:这里强调转换的是对象...

    JAVA面向对象详细资料

    Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?什么对象? 8 4 什么是类? 9 5 如何创建一个类Class? 10 6 如何使用类创建对象 10 7 引用与实例 11 8 实例属性与实例方法 ...

    Java JSON与Object互转源代码

    该代码通过两个简单的方法进行JSON数据与Java对象之间简单转化: 1. String jsonStr = JSONTool.convertObjectToJson(object); 2. Object obj = JSONTool.convertJsonToObject(jsonStr); 缺点:对于集合(Collection...

    12-Java面对对象高级(中)

    本章通过对象的多态性讲解了抽象类与接口的实际应用,并通过实例讲解了抽象类与接口的关系及使用,并简单介绍了适配器与工厂设计模式。

    【JAVA】笔记(2)---面向过程与面向对象;类,对象;实例变量,引用;构造方法;(csdn)————程序.pdf

    【JAVA】笔记(2)---面向过程与面向对象;类,对象;实例变量,引用;构造方法;(csdn)————程序

    groovy和Java相互调用1

    Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该

    Java对象的强、软、弱和虚引用1

    3.2 如果使用软引用SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收 3.

Global site tag (gtag.js) - Google Analytics