Java在一个对象中,声明另一个对象,再使用这个对象的变量,这种方式是引用不?

如题,在对象a中声明对象b,接着使用b.b1,那么b1的值是怎么传进a中,是指针传进的?可是b1不就是一个普通的变量?怎么能当指针用?

刚学Java,以前看过C,看到 引用 这部分有点不清楚。

你是说
public class A {
private int age=10;
public B b ;
}

class B {

}

a为A类对象实例,b为B类对象实例。当a.b对b赋值的情况吗?你要知道a.b是从a的首地址开始计算出a对象存储的B类引用变量的b的地址,b的内容是在堆内存中存储的。a.b = xx;这里的xx必定也是B类对象的引用变量的值(即B类在堆内存中的首地址)。这里是值传递的形式。Java中的赋值,例如A a = new A();都是值传递的形式。追问

类A和类B,类A中声明类B的实例b,类B声明变量ptr,接着在类A中存取b.ptr的值,想问的是这个存取是怎么实现的?比如存一个数字进b.ptr, b.ptr = 12; ,或者取出 b.ptr 的值做其他事,是怎么存取的,这个过程。

是不是以b为指向,获取那个之前声明好的B的实例的内存首地址,然后利用变量的名称ptr来存取变量ptr?

追答

ptr 是基本数据类型的时候,就是将12放进b为首地址后面的某一块地址(ptr)的内存.也就是说b.ptr 这是在计算从b首地址开始(同过类型,名称等,内部实现不必知道)ptr变量的地址,然后放入12, b.ptr也可以说是那块内存的别名。这里ptr是基本数据类型的情况,如果是对象类型,就是把对象类型在堆内存中的首地址赋值进入b.ptr的那块内存中。

追问

刚才看书上说要安装库源文件
mkdir src
cd src
jar xvf ..\src.zip
最后那个命令什么意思,已经安装了jdk1.8,现在需要安装这个库源文件吗,想过些日子安装IDE的。
还有安装文档,不知什么意思。

追答

你是想看源码吗????你直接连接源码就是了啊!在构建路径里面找到“库”选项 --找到你的jar,点击源码连接,src.zip对应rt.jar。建议你安装一个反编译的插件!!!而且也有gui版的,可以批量反编译jar的。不懂的可以再问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-12
引用就是指针。你就这么认为吧。java中传递的是对象的引用,和C语言是不同的。先了解一下什么是面向对象吧。追问

Java中的引用就是指针,是一种限制的指针,不能参与整数运行和指向任意位置的内存,并且不用显示回收对象。除了Java外,就C#以及VB.NET中出现的引用,都类似于C++中的指针。Java中的采用引用的说法,其实是想程序员忘记指针所带来的痛苦;Java的引用比C++中的指针好用得多了,也容易管理,同时提供内存管理机制,让大家用得安心,写得放心而已。

第2个回答  2015-01-12
java里面是不使用指针的哦~~
相似回答