黑马程序员技术交流社区
标题:
问下,java里一个类的方法如何访问另一个类已经实例化的...
[打印本页]
作者:
Conning
时间:
2014-5-15 23:42
标题:
问下,java里一个类的方法如何访问另一个类已经实例化的...
1.首先我在主程序用类A实例化了一个对象。
2.然后调用类A的方法setter方法对该对象的属性进行了设置。
3.同一个包下类B里的一个方法希望能取得这个属性已设置好的对象的数据,对其进行操作。
应该怎么实现?
我在类B里的方法中重新NEW一个类A的对象,再访问其属性,发现是一个新的对象,而不是之前那个属性已经设置好的对象了。
作者:
Jero
时间:
2014-5-15 23:46
我对java还不是很精通 不过我感觉 你这样试试 你的对象写在B里面 在mainclass A里面调用。
作者:
张百振
时间:
2014-5-15 23:52
同包下想访问另一个已经实例化的对象的成员属性对吧?
你在B类重新new一个对象的属性肯定是初始值
所以你不能访问A类里创建的对象
你可以将那个类的成员属性加上static修饰,这样所有那个类的实例都共享一个属性
你也就可以访问了
作者:
pandapan
时间:
2014-5-16 00:07
你是想同一个包下类B里的一个方法希望能取得这个属性已设置好的对象的数据,对其进行操作,然而你重新创建了一个A的对象,结果发现没有取到已经设置好的值。
原因是这样的,因为呢,你没有将这个变量设置为static,所以这个变量并不是A类所有对象共有的变量,针对普通的类的变量,是每次新建一个对象时,都会拷贝一份新的。所以你在类B中获取的变量就是新的。
按照你的需求描述,我们可以进行如下的操作
在B的某个方法的参数中,将A类的某个对象的引用传过来,直接使用这个引用来操作已经创建好的A对象。
代码如下
Class B{
...//你的部分代码
//假设此处只是需要获取A的field1的值,//打印到控制台
public void showAField(Class A){
System.out.println(A.getField1());
}
...//你的部分代码
}
复制代码
希望能够帮到你!
作者:
Jero
时间:
2014-5-16 00:09
刚才试验了
A类不用说了。
你在B类这样写。
在B类写个方法。
在B类这个方法里面 拿到A的对象 a 用 a.get 就可以了。
作者:
Jero
时间:
2014-5-16 00:17
A类的代码
package com.lzf.duixiang;
public class A {
public String aname;
public String getAname() {
return aname;
}
public void setAname(String aname) {
this.aname = aname;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
复制代码
B类
package com.lzf.duixiang;
public class B {
public void D(){
A a=new A();
a.getAname();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2