❶ java在靜態方法給非靜態變數賦值
publicclassRookie{
privateinta;
publicintgetA(){
returna;
}
publicvoidsetA(inta){
this.a=a;
}
publicstaticRookiegive(intb){
Rookier=newRookie();
r.setA(b);
returnr;
}
}
測試方法:
System.out.println(Rookie.give(2).getA());
❷ java常量靜態賦值與動態賦值的區別
這里需要的是編繹時常量,其值在編繹時就能確定。IF1.BB 時寫死的,編譯時就能確定其值。IF1.AA 要在運行時才能確定其值。
❸ java static 變數能 賦值嗎
可以。
標記為final的才不可以賦值。
❹ Java中static變數能不能再賦值,也就是說能不能再改變它的值
static變數在編譯時已經分配內存,
定義static變數是稱為靜態變數 也是局部變數
誰說全局就不能改變值了
除非是 static final聲明,就成常量了,就不能改了
❺ java定時器任務給靜態變數賦值,然後A類被B類調用,可B類無法獲取到靜態變數的值
你應該是先運行的A類,再運行的B類吧。這樣運行A類和B類的進程是兩個進程,因為是不同的進程,A類里的變數賦值是影響不到B類的。
你把
A a = new A();
a.run();
這兩行代碼加到B類的main方法里,再運行B類就可以了
❻ java中使用static聲明的變數是否必須賦初值
你自己上機實驗下不就知道了。不必賦初值的(可以通過編譯,也可以運行,調用的時候,系統會默認給他值)
但是按照規范寫法,還是要附個初值給他,無論給任何變數賦值,都最好要給他附一個初值。
❼ java數組靜態賦值
這兩種初始化方法在本質上是沒有什麼區別的,只是第二種方法只能在數組定義的時候對數組初始化;而第一種方法可以出現在程序的任何地方,也就是你定義了一個數組變數,然後可以在任何地方用第一種方法對其進行初始化;第二種方法甚至可以作為方法的參數。
可以參考下面的程序:
import java.util.Arrays;
public class ArrayInitialization {
public static void main(String[] args) {
int[] a = { 1, 2, 3 };
int[] b;
b = new int[] { 4, 5, 6 };
printArray(a);
printArray(b);
printArray(new int[] { 7, 8, 9 });
}
static void printArray(int[] array) {
System.out.println(Arrays.toString(array));
}
}
❽ JAVA中怎麼通過非靜態方法給一個靜態變數賦值
public class staticTest1
{
public static int java;
public void setJava(int java)
{
this.java = java;
}
public static void main(String args[])
{
staticTest st = new staticTest();
st.setJava(2009);
System.out.println(st.java);
}
}
如你所說,這樣是完全能辦到的,及:
靜態方法給非靜態變數賦值!
下面這個程序就不能編譯通過!!
public class staticTest2
{
public int c;
public static void setC(int c)
{
this.c = c;
}
public static void main(String args[])
{
staticTest st = new staticTest();
st.setC(2000);
System.out.println(st.c);
}
}
提示錯誤:
無法從靜態上下文中,引用非靜態變數!
祝樓主,天天向上!!
❾ Java Static變數是不是只在類載入的時候賦值一次,以後創建類的對象的時候 不會再重新賦值
static變數值在類載入的時候分配空間,以後創建類對象的時候不會重新分配。
賦值的話,是可以任意賦值的
❿ java 構造器中可不可以給靜態變數賦值為啥
當然可以,靜態變數只是在你類載入的時候初始化了,可以直接引用並修改;