① java中怎么让一个类的可以被多个类共享其属性的值。意思就是值被修改了,其他的类也能得到它修改后的值。
static关键字,static是用来定义被大家共享的数据的部分。
其实如果把某一个对象的属性定义为static的,那么其实是有背java的封装性这个特性的。
不过也不能一概而论。
例子:
public class 我的钱包{
//该属性,也就是我钱包里的钱,定义为static,这样我的钱包里的钱就不仅是属于我自己了,而是被想要我钱包里德钱的人所共享!
public static double 钱 = 100;
}
public class 我自己{
//给我的我的钱包里放点钱
我的钱包.钱 = 1000;
}
public class 别人{
//别人来了,也在我的钱包里放了点钱。哈哈。这是好的时候哦!
我的钱包.钱 = 12000;
}
这是我的钱包里的钱是被大家所共享,所以其中的钱的值会被后一次赋值所覆盖。
大概能明白点了吧!
② Java里如何做到一个变量成为共享数据
可以通过这个类的全局变量和定义一个减法的方法来实现呀.
按你说的例子我们可以这么写
首先,定义一个要被共享变量的类:
publicclassShare{
staticinta=100;//定义一个值为100的静态全局变量
publicstaticvoidminus(intvalue){//定义一个静态方法
a=a-value;
}
}
创建一个测试类
publicclassTest{
publicstaticvoidmain(String[]args){
Share.minus(10);//比如我们要给上面的a变量减10
System.out.println(Share.a);//输出之前定义的变量的结果为:90
}
}
③ java如何实现类之间数据共享
可以把数据设置为公共的静态的,之后会在初始化加载,也就是说可以被任何类使用。
定义方法:public static final String BANK =”BOC“;
解释:以上方法中定义了个BANK字符串,类型是final变量,也就是说不能被改变,之后任何类都可以通过”类名.BANK“进行参数调用。
备注:如果不加final那么就是定义了一个静态变量,但是值可以进行重新赋值。
④ 不同的两个java project(项目)需要共用一个类时,这个类应该怎么做
要打包的类点右键 export java下有个JAR file 之后选输出路径 就打包成JAR文件了
⑤ java多个类共享一个类中的变量
你这个已经是2个进程了吧。调用了2个main方法。启动了两个java进程。
简单的这样不可能实现跨进程访问变量的
而且你运行两次了,的到的t2都不一样的。
如果你把 Test5里的main方法的方法体复制到 Test3的最后面,运行Test3的main方法 是不会报空指针的吧。
如果在同一main方法运行的代码中, 你可以使用定义一个接口
interface Test2StrChangeListener{
void onStrChange(String oldValue,String newValue);
}
然后再在Test2中定义一个泛型集合,List<Test2StrChangeListener> listeners;并修改Test2中的setStr方法:
public void setStr(String str) {
String oldValue = this.str;
String newValue = str;
this.str = str;
if(this.listeners != null )
{
listeners.onStrChangeListener(oldVaule,newValue);
}
}
然后在Test3 和 Test5中实现该接口Test2StrChangeListener。
再在Test3的main方法中将Test3和Test5的实例,添加到Test2中的listeners集合里面去。
以后当调用Test2的setStr方法的时候,就好把新值和旧值传到listeners里面的实例去。
在Test3和Test5里面就可以时时刻刻知道 Test2.str的最新值了。