中易网

java有A,B两个类,A类中有一个变量x,这个变量值在A类中改变了值,如何在B类中取得这

答案:6  悬赏:0  
解决时间 2021-01-16 01:03
java有A,B两个类,A类中有一个变量x,这个变量值在A类中改变了值,如何在B类中取得这
最佳答案
如果你确定 类变量, 也就是static的,只要B类可以访问A类,就可以直接取到这个变量

比如 class A{
public static int a = 0;

}

class B {
//在这里面的任意地方均可以通过 A.a来访问这个值 , 而不管a这个值 是如何改变的

}
全部回答
1. 在A类中声明这个变量x是static静态变量,可以直接在B中取到(A.x)。
2. 在B类中,声明一个A类型的属性(B.A),并把A的一个实例赋值给B的这个属性。改变A实例的值(a.x = 10),可以在B中取到(b.a.x)
追问:我是用你第一种方法做的但是取到没变前的值
第二种看不懂
追答:把你代码给出来,第一种方法可以取到值的
追问:我是串口接到数据,把这个数据传到另一类 B
A class:
static String receivedStr = "";
receivedStr = receivedStr + new String(readBuffer);//这里我已经得到数据了
取:
B class:
String receivedStr=JFrame.receivedStr;
这里传过来就是""
追答:1. 确定 readBuffer 有值
2. 确定 B取值的操作在A赋值操作之后
N多种方法,b持有a的实例是一种,还有就是静态变量,还可以在a中将值与b对象进行捆绑,也就是将b对象实例传入到a中,然后进行设置,反射也行,静态加载还行,你自己考虑一下吧。
追问:具体说一种哇这样看不懂
在B类中创建A类对象调用这个变量就行了
B类中获得A类的引用
看了下面楼主的提问,我明白楼主什么意思了:
可以通过static关键字修饰成员变量,static表示的意思是该成员变量为类所拥有,并不是某一具体对象所拥有,通过该类实例化的所有对象共享static修饰的成员变量,static修饰的成员变量在内存中占有一块固定的内存,所以,你可以在A中修改staitc修饰的成员变量,在B中可以看到修改的结果。如果成员变量不定义为static,那么每当你new一次,相当于给该成员变量分配一次内存,所以你在A中修改的值,在B中是无法看到修改效果的,因为你在B中也重新new了一次对象,该成员变量和A中修改的成员变量在内存中指向的并不是同一个块区域,他们分别是自己所拥有的成员变量。自然也就出现你问的问题了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问煮熟的闸蟹能放多久?
日语,“米纳桑,麻得吆,瓦达西瓦开得!”是
佳宇快运(浦阳街道文景东路93号佳宇快运)地址
二十份之三+九份之八=()
MC 单人游戏如何清除地上掉落物
魔兽世界的宏里/castsequence reset=6是
真实H录音-恋人.mp3【BL】17分钟和19分钟的
慢波睡眠时哪一时相分泌大量生长激素
7/10-2/7-5/7
秘籍和秘笈的区别是什么?
双非一本,ACCA还有几门,英语六级,进四大有
电影圣杯神器骸骨之城里能让鬼魂现原形的钢琴
一不小心把干胶喷脸上了,有事吗?
天德综合商店地址好找么,我有些事要过去
如果赵东来是老高的人,猴子还能赢吗
推荐资讯
快乐时光国际幼儿园(泊头信誉楼商厦西南)地址
申论经常感到无话可说怎么办?
14年秀儿跑了6W公里值多少钱
老七理发店地址有知道的么?有点事想过去
惠普gt5810打印机与5820的区别
平板6米x6米放不放梁
谁能告诉我这串是崖柏吗?
文光网吧机麻怎么去啊,我要去那办事
以旧换新的电视机,旧的电视机拿去做什么?
我唱歌的时候为什么声音会颤抖? 我是个唱歌
依概率收敛概念问题?
札幌机场托运打包纸箱怎么收费
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?