「java获取调用对象引用」java 对象引用
本篇文章给大家谈谈java获取调用对象引用,以及java 对象引用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java对象怎么调用
- 2、java 中一个a 对象中定义了b对象,现在有b对象的引用,怎样得到a对象的引用.
- 3、java 对象引用
- 4、关于java里返回对象的引用
- 5、java中有办法获得对象的引用个数吗
Java对象怎么调用
java对象中,除了基本类型,其他对象传递都是地址传递,虽然java取消了指针的设定,但是其内部还是使用指针操作的,定义一个对象就相当于定义了一个对象类型的指针,这个指针的值为null,如果不进行初始化的话自然会报空指针异常,也就是NullPointerException。即使是基本类型,如果不初始化直接调用的话一样会报异常的。
上面的main方法中,map对象只是被创建并没有初始化,只是在前面创建了一个Map类的指针但并没有告诉系统具体指向,也就是map的值为null。
如以下方式:
static Map map;
public static void main(String[] args)
{
map=new Map();
map.seach();
}
程序就可以正常运行。
这两种创建对象的方法都是可以的。第一种在方法外创建就是作为一个类的属性,这个时候这个对象的生存周期是相当长的,你可以在一个方法中初始化后在其他方法中继续调用,其他方法对其造成的修改会都会影响到下一次调用的结果。甚至可以在其他类中调用这个变量。当然如果调用到的是没有初始化的对象一样会报空指针。
后一种方式是在方法中创建对象进行操作,这时候这个对象的生存周期只限制于这个方法。每次调用这个方法的时候都会重新创建一个这样的对象。想将这个对象拿出去只有在创建后用set方法或者是使用return 返回。
例如:
Map map=new Map();
map.seach();
//假设OtherObj对象有setMap方法,使用set方法取出map对象
OtherObj.setMap(map);
或者就写成:
public Map getMap(){
Map map = new Map();
return map;
}
此外,static标记表示这个对象是类共有的,调用的时候甚至不需要创建你这个类的对象直接通过类名就可以调用出来。例如jdk中的java.awt.Color类里面可以直接取出一些特定的颜色,只需要调用Color.RED等方法即可。不需要另外创建Color对象
java 中一个a 对象中定义了b对象,现在有b对象的引用,怎样得到a对象的引用.
你只有通过new出一个新对象a来拿到a的对象的引用。如果要把现有的b对象设如a对象中的话,可以调用a对象里面对它本身的b对象的set方法,或者直接调用a对象带参数的构造函数来new出一个新的a对象。在java中,都是用的引用值。
java 对象引用
java的内存有堆和栈之说,对象放在栈里,而对象引用的变量或是自己定义的变量都放在一个堆里,也就是对象和变量不是在一起放着的,而是一一对应的关系。
举个例子:
nb1.i这个对象引用的变量i在1号"堆"里
nb2.i这个对象引用的变量i在2号"堆"里
nb1这个对象在1号栈里,
nb2这个对象在2号栈里.
这样是形成了1号栈引用1号堆里的数据;而2号栈引用的是2号堆里的数据。
最后nb1=nb2,就是两个对象同时指向nb2所引用的堆里的变量。
因为nb2.i本来等于=33,那么就会把nb1.i给回收掉,而nb1.i这时候就不是22了,而是33.
这两个对象都同时引用的是被改变有的变量.也就是33.所以现在对那个栈进行数据更改的话,那么其实都是对两个对象进行了更改。
图解:
本来是
1栈=========================1堆
2栈=========================2堆
最后是
1栈
===================》1堆(i=33)
2栈
关于java里返回对象的引用
return this
this是只当前对象,也就是哪个对象调用这个creatAccount()函数,this就指向哪个对象
public Account creatAccount()
{
accountId++;
return this;
}
你这个函数的返回类型是Account ,而accountId是int型的,返回当然会出错
java中有办法获得对象的引用个数吗
如果a1的返回类型是P类的话就可以,比如:class..Pa1(){};//a1的返回类型是P类voida2(){};main..Pp=newP();p.a1().a2();
关于java获取调用对象引用和java 对象引用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。