我在user.java中设定  
public  class  User  {    
       private  String  name;    
       private  boolean  male;    
 
       public  boolean  isMale()  {    
                           return  male;    
       }    
 
       public  void  setMale(boolean  male)  {    
                           this.male  =  male;    
       }    
 
       public  String  getName()  {    
                           return  name;    
       }    
 
       public  void  setName(String  name)  {    
                           this.name  =  name;    
       }    
 
在test.java中想访问,  
User user=new User();  
user.setName("Tom");  
 
但是编译报错:User(java.lang.String,java.lang.String,boolean) in cn.ac.i
ct.User cannot be applied to ()
                                User user=new User();
                                          ^ 于是我又把“User  user=new  User();”改成了“User  u;”,  
但还是报错“variable  u  might  not  have  been  initialized”。  
怎么写u的初始化?

解决方案 »

  1.   

    你的程序中是不是在包cn.ac.ict下面还有一个User类,而那个User类的初始化是需要两个String参数和一个boolean参数的。应该是你的User类引用错了。
      

  2.   

    确定user.java,test.java在一个包中?有没有名字相同的User类?
    语法上没有错误。
      

  3.   

    我运行楼主的程序,没有问题。
    在main()中加一句
    System.out.println(user.getName());
    就能输出结果Tom
      

  4.   

    两个类要在同一个目录!实在不行,把两个类弄到一个.java 不久行了!
      

  5.   

    哈哈 我这个用一个类实现的 不要鄙视:public class TestUser {
    public  class  User  {    
           private  String  name;    
           private  boolean  male;    
     
           public  boolean  isMale()  {    
                               return  male;    
           }    
     
           public  void  setMale(boolean  male)  {    
                               this.male  =  male;    
           }    
     
           public  String  getName()  {    
                               return  name;    
           }    
     
           public  void  setName(String  name)  {    
                               this.name  =  name;    
           }                  
    }
    public static void main (String[] args){
    TestUser tu=new TestUser();
    User u=tu.new User();
    u.setName("Tom");
    System.out.print(u.getName());
    }
      

  6.   

    试了一下,
    class  User  {    
           private  String  name;    
           private  boolean  male;    
     
           public  boolean  isMale()  {    
                               return  male;    
           }    
     
           public  void  setMale(boolean  male)  {    
                               this.male  =  male;    
           }    
     
           public  String  getName()  {    
                               return  name;    
           }    
     
           public  void  setName(String  name)  {    
                               this.name  =  name;    
           }
    }    
    public class test{
    public static void main(String[] args){
    User user=new User();
    user.setName("tom");
    System.out.println(user.getName());
    }
    }
    没有错误,不知道楼主哪里出了问题
      

  7.   

    楼主的问题从字面意思就可以看出来嘛,干嘛些那么多废话:
    ---------------------
    但是编译报错:User(java.lang.String,java.lang.String,boolean) in cn.ac.i
    ct.User cannot be applied to ()
                                    User user=new User();
    这段话的意思很明确的告诉我们楼主调用了构造函数User(xxx,xxx),而不是默认的构造函数User();
    所以我敢断定楼主的代码没有帖玩,下面就应该是楼主自己生成的构造函数:
    public User(String xxx,boolean yyy){}
    一旦楼主自定义了构造函数,编译器将不在为楼主自动生成构造函数:
    public User(){}------------------------------
    于是我又把“User  user=new  User();”改成了“User  u;”,  
    但还是报错“variable  u  might  not  have  been  initialized”。  
    怎么写u的初始化?
    楼主这样些,还没有“new”,编译器当然还暂时不知道楼主的构造函数有问题,所以就不报上面的那个错误了,说楼主的没有初始化,同意是应为楼主没有new嘛,new了就初始化了嘛,同时也就出错了嘛。楼上的高手不要误导人家嘛~~
      

  8.   

    搞过了,可以,但没结果
    class  User 
     {    
           private  String  name;    
           private  boolean  male;    
     
           public  boolean  isMale()
           {    
                               return  male;    
           }    
     
           public  void  setMale(boolean  male)
           {    
                               this.male  =  male;    
           }    
     
           public  String  getName()  
           {    
                               return  name;    
           }    
     
           public  void  setName(String  name) 
           {    
                               this.name  =  name;    
           }    
    }
    public class Test
    {
    public static void main(String args[])
    {
    User user=new User();  
    user.setName("Tom");  
    }}