public class Ko6_3 extends A
{ /**
 * @param args
 */
int x=200;
   void dis()
    {
     System.out.println("x="+x);
    }
  
public static void main(String[] args) {
// TODO Auto-generated method stub
   new Ko6_3().dis();
}}
class A{
int x=100;
}
为什么把int x=200;
   void dis()
    {
     System.out.println("x="+x);
    }
写在main里面就是错误的???最后的new Ko6_3().dis();  是怎么回事?
我记得new对象还要有类啊?

解决方案 »

  1.   

    int x=200写在main里面后  Ko6_3的dis方法里就找不到x了
    (注意,A中成员x为私有的,A的子类不可访问x)new Ko6_3().dis(); 你可以把他看成(new Ko6_3()).dis();
    这样你是不是能够明白一些?先new一个Ko6_3的实例,然后调用它的dis方法
      

  2.   

    new Ko6_3().dis(); 
    不带具体实例名的实例化,并调用属于该类的方法。
      

  3.   

    引用二楼的:
    new Ko6_3().dis(); 你可以把他看成(new Ko6_3()).dis();
    也就是new出一个对象,然后调用它的dis()方法
    由于没有引用指向这个对象,你无法再使用这个对象了
    而Ko6_3 k=new Ko6_3();则使用k指向new出的对象,可以通过k多次使用这个new出来的对象。引用三楼的:
    在一个函数里不能再定义另外一个函数吧。
    java不支持函数的嵌套定义,所以别直接在一个函数内定义另一个函数
      

  4.   

    int x=200写在main里面后 Ko6_3的dis方法里就找不到x了
    (注意,A中成员x为私有的,A的子类不可访问x)new Ko6_3().dis(); 你可以把他看成(new Ko6_3()).dis();
    这样你是不是能够明白一些?先new一个Ko6_3的实例,然后调用它的dis方法建议先多看点基础的书
      

  5.   

      因为 X是私有的
      不能在main直接定义吧
      感觉有点象单子模式