日期:2014-05-20  浏览次数:20564 次

this.method()方法为什么要写在方法里面呢
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句,即不是属性,更不是方法,只是语句而已,所以必须放在方法里.
------解决方案--------------------
支持一下