我对Java完全陌生,我想知道为什么我的静态块没有执行。静态块 - 他们什么时候执行
public class Main {
public static void main(String[] args) {
Account firstAccount = new Account();
firstAccount.balance = 100;
Account.global = 200;
System.out.println("My Balance is : " + firstAccount.balance);
System.out.println("Global data : " + Account.global);
System.out.println("*******************");
Account secondAccount = new Account();
System.out.println("Second account balance :" + secondAccount.balance);
System.out.println("Second account global :" + Account.global);
Account.global=300;
System.out.println("Second account global :" + Account.global);
Account.add(); }
}
public class Account
{
int balance;
static int global;
void display()
{
System.out.println("Balance : " + balance);
System.out.println("Global data : " + global);
}
static // static block
{
System.out.println("Good Morning Michelle");
}
static void add()
{
System.out.println("Result of 2 + 3 " + (2+3));
System.out.println("Result of 2+3/4 " + (2+3/4));
}
public Account() {
super();
System.out.println("Constructor");
}
}
我的输出是:
Good Morning Michelle
Constructor
My Balance is : 100
Global data : 200
*******************
Constructor
Second account balance :0
Second account global :200
Second account global :300
Result of 2 + 3 5
Result of 2+3/4 2
我想知道为什么,当我去与第二帐户未显示“早安米歇尔”。
从我所做的研究中,这个静态块应该在每次调用类时执行(新帐户)。
对不起,真正的初学者问题。 Michelle
静态块会执行一次,以及类中静态字段的初始化。 – nhahtdh 2013-05-01 19:26:29
删除单词“static”会将其更改为普通的初始化程序块,每次创建该类的新实例时都会执行该初始化程序块。 – 2013-05-01 19:46:23
看看相关的问题,有很多关于这方面的信息。 – 2013-05-01 19:47:01