public class smain{
 
public static void main(String args[]){
personp p= new personp();
System.out.println(p.i);
}    class personp
    { int age;
      void shout()
      {
      int age=6;
      System.out.println("my age is"+age);
      }
    }
}

解决方案 »

  1.   

    p.i 是什么东西?personp类里没有i
      

  2.   

    还有是内部类
    smaint s = new smain()
    s.new personp这才是吧
      

  3.   

    不好意思啊,网友们是这样的
    public class smain{
     
    public static void main(String args[]){
    personp p= new personp();
    System.out.println(p.age);
    }  class personp
      { int age;
      void shout()
      {
      int age=6;
      System.out.println("my age is"+age);
      }
      }
    }
    我的意思是想看看这personp中的两个age的值都是什么
      

  4.   

    2个age没关系啊第一个是0,第二个是6
      

  5.   

    是啊,我就写着玩,可是还写错了,我在主类里new一个内部类不行啊?
      

  6.   

    public class smain{
    public static void main(String args[]){
    personp p= new personp();
    System.out.println(p.age);
    } static class personp {
    int age;
    void shout() {
    int age=6;
    System.out.println("my age is"+age);
    }
    }
    }或者public class smain{
    public static void main(String args[]){
    personp p= new personp();
    System.out.println(p.age);
    } static class personp {
    int age;
    void shout() {
    int age=6;
    System.out.println("my age is"+age);
    }
    }
    }内部类加个static就行,非static的内部类实例化必须依托于一个外部类的实例,因为内部类可以访问外部类的属性,如果这个外部类不是已经存在,访问就是错误的
      

  7.   

    晕,第二个方法错了,是下面这个,复制粘贴的错,CSDN又不能修改……
    public class smain{
    public static void main(String args[]){
    smain.personp p= new smain().new personp();
    System.out.println(p.age);
    } class personp {
    int age;
    void shout() {
    int age=6;
    System.out.println("my age is"+age);
    }
    }
    }
      

  8.   


    personp p= new smain().new personp();
      

  9.   

    main是个static方法,不能直接调用非static方法和内部类。
      

  10.   

    System.out.println(p.i);//no i in class personp
      

  11.   

    int age;
            void shout() {
                int age=6;
                System.out.println("my age is"+age);
            }
      

  12.   

    main是个static方法,不能直接调用非static方法和内部类。
      

  13.   

    最简单的内部类,think in java 将内部类那章一开始就说了这块内容
      

  14.   

    lz是新来的吧
    建议lz按8#那样把代码贴成 java code
    这样看的人方便
      

  15.   


    public class smain { public static void main(String args[]) {
    smain sm = new smain();
    personp p = sm.new personp();//匿名内部类要这样new
    System.out.println(p.age);
    } class personp {
    int age;//第一个age是类成员变量 void shout() {
    int age = 6;//第二个是shout方法内定义的局部变量
    System.out.println("my age is" + age);
    }
    }
    }建议楼主看看Java编码规范!