super.method(),this.method(),System.out.println()为什么要写在方法里,写在类里却报错呢
class A{
this.xx(); //为什么
super.xx(); //写在类里
System.out.println("xx"); //会报错呢?
void method(){
this.xx(); //为什么
super.xx(); //写在方法里
System.out.println("xx"); //就没有错误了呢?
}
}
平时只是死记这种写法,但不知道要怎么样写?
------解决方案--------------------
方法调用写在类里,那么这些语句什么时候会被执行呢?永远都不会被执行,当然是不允许的!
而如果写在方法里面,我们就可以调用方法来执行方法里面的方法!
不过可以把方法调用写在类里面,再另上一对{},就象这样:
------解决方案--------------------
类下面不能直接包含语句,除了把语句写在方法中以外,还可以通过两种形式:静态初始化块(Static Initialization Block)和实例初始化块(Instant Initialization Block)。
静态初始化块在类装载完毕时执行,这意味着它在所有实例被创建之前执行,并且只执行一次。如:
- Java code
public class Foo { static { System.out.println("Foo class is loaded"); }}
------解决方案--------------------
又学到点知识.. 以前只知道静态初始化块,不知道实例初始化块
------解决方案--------------------
to: johnsoncr
在代码的首尾另上:
[code=Java][/code]
------解决方案--------------------
呵呵
又学到了一点知识了。
------解决方案--------------------
- Java code
public class OneCards { private static String CardNumber[];{ CardNumber=new String[15]; CardNumber[0]=new String("2"); CardNumber[1]=new String("3"); CardNumber[2]=new String("4"); CardNumber[3]=new String("5"); CardNumber[4]=new String("6"); CardNumber[5]=new String("7"); CardNumber[6]=new String("8"); CardNumber[7]=new String("9"); CardNumber[8]=new String("10"); CardNumber[9]=new String("J"); CardNumber[10]=new String("Q"); CardNumber[11]=new String("K"); CardNumber[12]=new String("A"); CardNumber[13]=new String("SmallKing"); CardNumber[14]=new String("BigKing");} public OneCards(){ }}
------解决方案--------------------
类里边,只能有方法和属性。
this.xx();
super.xx();
System.out.println("xx");
这3句,即不是属性,更不是方法,只是语句而已,所以必须放在方法里.
------解决方案--------------------
支持一下