① 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的最新值了。