public class person {
   String s1;
   int age;
   person()
   {
    s1="wjjkknd";
    age=22;
   }
   public void setage(int t)
   {
    age=t;
   }
   public int printage()
   {
    System.out.println(age);
   }    public static void main(String[] args)
    {
      person  a;
      a.printage;
    }
}

解决方案 »

  1.   

    你把第二个类前面的public 去掉!
      

  2.   

    public class wjk {
    public static void main(String[] args)
        {
          person a=new person();
          a.printage();
        }
      }
    class person {
       String s1;
       int age;
       person()
       {
        s1="wjjkknd";
        age=22;
       }
       public void setage(int t)
       {
        age=t;
       }
       public void printage()
       {
        System.out.println(age);
       }
    }
      

  3.   

    "person a"只不过定义了一个空的引用,当然无法调用对象方法,只能使用类方法,也就是静态方法,要"new"一下
      

  4.   

    你的构造器不是是default的 改成public吧
      

  5.   

    我用new 了,
    但编译器 还是说, main 无法调用非静态的
      

  6.   

    你的构造器是default 的   改成public (不好意思 刚才多打了几个字)
      

  7.   

    主要是 无法在 main 中, 用自己定义的类,
      

  8.   

    public class wjk 
    {
    public static void main(String[] args)
        {
          wjk a=new wjk();
          a.printage();
        }
       
       public printage()
       {
        System.out.println("age");
       }
    }
      

  9.   

    刚才一时大意.只是拷下来,下面这一个是我运行过的.class person {
       String s1;
       int age;
       person()
       {
        s1="wjjkknd";
        age=22;
       }
       public void setage(int t)
       {
        age=t;
       }
       public void printage()
       {
        System.out.println(age);
       }    public static void main(String[] args)
        {
          person  a = new person();
          a.printage();
        }
    }
      

  10.   

    试了也不行,同样问题 
    无法在 main 中, 用自己定义的类,
      

  11.   

    没可能不行..我都可以正常执行.测试过的.你的类名是什么.是不是person.java 
      

  12.   

    说错,你的文件名是不是person.java
      

  13.   

    并且你的程序还有其他的错误,对象都没有实例化,怎么能调用你的方法呢,而且方法的返回类型也是错误!你的错误真是漏洞百出啊!怎么能当程序员!
    public class wjk {
    public static void main(String[] args)
        {
          person  a =new person();      a.printage();
        }
       
    }
    class person {
       String s1;
       int age;
       person()
       {
        s1="wjjkknd";
        age=22;
       }
       public void setage(int t)
       {
        age=t;
       }
       public void  printage()
       {
        System.out.println(age);
       }
    }      
      

  14.   

    真的不行, java person
    后 会说:
    Exception in thread "main" java.lang.NoclassDefFoundError: person
      

  15.   

    这一个程序百分之一百对,至少在我台机是可以正确输出的.你出现java person出现Exception in thread "main" java.lang.NoclassDefFoundError: person
    很明显,有九成是你JDK路径设置的问题.请先设置classpath
      

  16.   

    public class wjk {
       String s1;
       int age;
       public void person()
       {
        s1="wjjkknd";
        age=22;
       }
       public void setage(int t)
       {
        age=t;
       }
       public void printage()
       {
        System.out.print(s1);
        System.out.println(age);
        
       }
       public static void main(String[] args)
        {
          wjk a=new wjk();
          a.printage();
        }
    }
      

  17.   

    不好意思,刚错了一点
    public class wjk {
       String s1;
       int age;
       public void wjk()
       {
        s1="wjjkknd";
        age=22;
       }
       public void setage(int t)
       {
        age=t;
       }
       public void printage()
       {
        System.out.print(s1);
        System.out.println(age);
        
       }
       public static void main(String[] args)
        {
          wjk a=new wjk();
          a.printage();
        }
    }      
      

  18.   

    楼主能不能执行hello world的程序
      

  19.   

    不能---classpath有问题
    能---再说
      

  20.   


    这样可以实现你要求的输出一个人名,一个年龄:
    public class wjk {
       String s1;
       int age;
       wjk()
       {
        s1="wjjkknd";
        age=22;
       }
       public void setage(int t)
       {
        age=t;
       }
       public void printage()
       {
        System.out.println(s1);
        System.out.println(age);
       }
       public static void main(String[] args)
        {
          wjk a=new wjk();
          a.printage();
        }
    }      
      

  21.   

    在同一个JAVA文件里,一个类调用另一个申明为PUBLIC的类里的public函数,那么你必需要先实例化再调用。public static void main(String[] args){
             
              person a=new person();
              a.printage();
    }
      

  22.   

    我遇到了这样的问题,我还是这样的都不行:
    public class hello
    {
     public static void main(String[] args)
      {
       System.out.println("hello word!");
      }
    }
    提示:Exception in thread "main" java.lang.NoclassDefFoundError: hello
      

  23.   

    楼主,我的解决了!
    你是不是直接安的j2sdk?如果是,你就直接使用它自己给你配置的path把classpath删了,就行了,我就是。
      

  24.   

    /*
     * @(#)person.java 1.70 01/12/03
     *
     * Copyright 2004 cfzq, Inc. All rights reserved.
     */
    /**
     * @author      WJJmooor (光复者) ,edited byFane
     * @version     1.70, 10/13/04
     * @since       JDK1.4.0
     */
    class wjk {
    public static void main(String[] args)
        {
          person  a=new person();
          a.printage();
        }
       
    }public class person {
       String s1;
       int age;
       person()
       {
        s1="wjjkknd";
        age=22;
       }
       //method for set age
       public void setage(int t)
       {
        age=t;
       }
       
       //print the age
       public void printage()
       {
        System.out.println(age);
       }
    }      
    这个代码可以用了,楼猪,记得声明一个实例
    在一个文件里只能有一个public类,所以去掉以上wjk和person的任何一个puublic
    代码上加上详细的注释是很好的习惯
    方法public void printage()前加int需要返回值
    还有:不知道楼猪怎么编译的,不会提示static问题,而是命名和类实例声明错误的问题最后,也是最重要的,及时结帖是对帮助你的人的最好的支持
      

  25.   

    上面的代码文件名是person.java,也就是与public类名相同,但是因为mian()方法在wjk里,所以要用java wjk来运行,也就是调用wjk类楼猪肯定是文件的命名和类的运行没看清楚,建议先多看基础的知识,写些小程序
      

  26.   

    plpq(游来游去) 的方法编译运行通过呀。。楼主是怎么搞的??
      

  27.   

    public class Wjk {
    public static void main(String[] args)
        {
          Person  a=new Person();
          System.out.println(a.getAge());
        }    
    }     class Person {
       String s1;
       public int age;
       Person()
       {
        s1="wjjkknd";
        age=22;
       }
       //method for set age
       public void setAge(int age)
       {
        this.age=age;
       }
       
       //print the age
       public int getAge()
       {
        return age;
       }
    }      
    文件名Wjk.java
      

  28.   

    呵呵呵。很明显不是吗,楼主定义了两个public类,那么必须得写成两个文件,比如wjk.java和person.java,然后先编译person.java,然后改main中的内容为:
          person  a=new person();
          a.printage;
    再编译wjk.java,就可以运行了。
      

  29.   

    其实,错误就在person a和两个public 上,两个public要么去掉一个,要么分成两个文件。
    person a必须写成person a=new person()