0
public class StaticVar {
//example of a static method
static int val=1024;//static variable
//a static method
static int valDividedTwo(){
return val/2;
}
}
class SDemo{
public static void main(String[]args){
//this is StaticVar.val which is equal to 1024
System.out.println("Val is" +StaticVar.val);
//thi sis the val/2
System.out.println("StaticVar.ValDiv2 =" +StaticVar.valDividedTwo());
StaticVar.val=4;
System.out.println("val is "+StaticVar.val);
System.out.println("val is "+StaticVar.valDividedTwo());
System.out.println("val is "+StaticVar.val);
}
}
私の質問はSystem.out.println("val is "+StaticVar.val);
の直後の最初の文章は、明らかに出力は4です。また、なぜSystem.out.println("val is "+StaticVar.valDividedTwo());
が2であるのも分かりますが、混乱しているのは、その後の文がSystem.out.println("val is "+StaticVar.val);
であるということです。静的変数としては2となるでしょうか?ここで何が起こっているのですか?静的変数に関して混乱していますか?
'return val/2;'は 'val'を変更しません。 'val'の半分の新しい値を返します。 –
ああ、ちょうどその値を返しますか? – eli
'valDividedTwo()'によって返される値は 'val'に設定されていないので、同じままです。 – Ramanlfc