為什么不能用static修飾這個(gè)初始化塊?
public class HelloWorld {
String name1;
String name2;
static String name3;
public HelloWorld(){
{
name1="周杰倫";
System.out.println("偶像1"+name1);
}
{
name2="張學(xué)友";
System.out.println("偶像2"+name2);
}
? ? ? static {
name3="王力宏";
System.out.println("偶像3"+name3);
}
}
public static void main(String[] args){
HelloWorld hello=new HelloWorld();
System.out.println("name1:"+hello.name1);
System.out.println("name2:"+hello.name2);
System.out.println("name3:"+name3);
HelloWorld hello2=new HelloWorld();
}
}
謝謝了~
2016-02-27
我覺得是你把初始化塊與構(gòu)造方法搞混了 初始化塊不用寫在構(gòu)造方法中 單獨(dú)寫就好了~
public class HelloWorld {
String name1;
String name2;
static String name3;
{
name1="周杰倫";
System.out.println("偶像1"+name1);
}
{
name2="張學(xué)友";
System.out.println("偶像2"+name2);
}
static {
name3="王力宏";
System.out.println("偶像3"+name3);
}
public static void main(String[] args){
HelloWorld hello=new HelloWorld();
System.out.println("name1:"+hello.name1);
System.out.println("name2:"+hello.name2);
System.out.println("name3:"+name3);
HelloWorld hello2=new HelloWorld();
}
}
2016-02-26
其實(shí)我說錯(cuò)了,應(yīng)該是static修飾的成員變量,在用構(gòu)造方法初始化該變量時(shí),構(gòu)造方法里不能使用static關(guān)鍵字,但在類內(nèi)非方法區(qū)域,可以使用static關(guān)鍵字修飾的初始化塊初始化該靜態(tài)變量,也可以不使用static關(guān)鍵字的初始化塊初始化該靜態(tài)成員變量。
2016-02-26
因?yàn)閖ava沒有用static修飾初始化塊的。
2016-02-26
public class HelloWorld {
String name1;
String name2;
static String name3;
public HelloWorld(){
{????????//此處應(yīng)該省略一個(gè)括號(hào)。。。。。。。
name1="周杰倫";
System.out.println("偶像1"+name1);
}
{
name2="張學(xué)友";
System.out.println("偶像2"+name2);
}
? ? ? static {
name3="王力宏";
System.out.println("偶像3"+name3);
}
}????????????????//此處括號(hào)應(yīng)該省略。。。。
public static void main(String[] args){
HelloWorld hello=new HelloWorld();
System.out.println("name1:"+hello.name1);
System.out.println("name2:"+hello.name2);
System.out.println("name3:"+name3);
HelloWorld hello2=new HelloWorld();
}
}
2016-02-26
靜態(tài)初始化塊不能寫在構(gòu)造方法中
2016-02-26
你的大括號(hào)多了一對(duì)
public class HelloWorld {
String name1;
String name2;
static String name3;
public HelloWorld()
{
name1="周杰倫";
System.out.println("偶像1"+name1);
}
{
name2="張學(xué)友";
System.out.println("偶像2"+name2);
}
static {
name3="王力宏";
System.out.println("偶像3"+name3);
}
public static void main(String[] args){
HelloWorld hello=new HelloWorld();
System.out.println("name1:"+hello.name1);
System.out.println("name2:"+hello.name2);
System.out.println("name3:"+name3);
HelloWorld hello2=new HelloWorld();
}
}