在Testmy类中应该这样创建My对象:
My w = new My("huyuex",22);
// 这就对了
构造方法的参数是(java.lang.String,int),而你原先那个参数为空,
所以编译提示错误:My(java.lang.String,int) in My cannot be applied to ()
                     My w=new My();

解决方案 »

  1.   

    问题是构造方法带了参数:
    public My(String nane,int age)
    {
    this.name=name;
    this.age=age;
    }(String nane,int age)
    那么我在My w=new My();
    ()中因给出构造方法中给的参数为其赋值..
    如:My w = new My("huyuex",22)但是既然是这样的那么set方法和get方法不是等于没派上用场???
    我想既使用构造方法来创建一个实例对象
    同时对变量的赋值和获取调用方法来实现那样怎么写?
      

  2.   

    重载构造函数
    class My
    {
    private String name;
    private int age;

             public My() {
                  name = "";
                  age = 0;
             } public My(String nane,int age)
    {
    this.name=name;
    this.age=age;
    }

    public void setName(String i)
    {
    name=i;
    }

    public void  setAge(int y)
    {
    age=y;
    }

    public String getName()
    {
    return name;
    }

    public int getAge()
    {
    return age;
    }


    }这里
    public My() 参数为空的,这样的话就可以满足你的要求,既可以用构造函数来生成对象,然后用其余的方法来赋值
    不过默认构造函数里边应该对类属性进行初始化,否则的话调用会出现未测结果,比如你用
    My m = new My();     //生成一个对象,而在调用setName和setAge之前就调用
    m.getName();
    m.getAge();      //那么得到的结果就是不确定的
    而且其实如果你有了带参数的构造函数,那么就应该用它,setName和setAge方法是用来在对象创建以后改变对象属性的
      

  3.   

    楼主你后面改的那个class,只定义了一个构造函数,即一定要传name和age
    避免影响原来的程序,你可以再写个构造函数
    public My () {
    }
      

  4.   

    在写一个类时,若你没有给类添加构造函数时,编译器会自动生成一个默认的构造函数,但如果你有了构造函数,编译器就不添加构造函数了,因为你第一次没有写构造函数,所以编译器就为你生成了一个public My () 的构造函数了,而你第二次自己写了一个构造函数,所以编译器就不为你提供默认的构造函数了,所以这时你必须完全自己添加你所需要的构造函数了,由于你在main()函数中的My w=new My();这一句实际上是调用了一个没有带参数的构造函数。所以你应该在类中添加构造函数public My () { }
      

  5.   

    好象还可以这样加:
    public My()
    {
       this("null",0);
    }
    楼上几位说的都对的呀.怎么没看到给分??附:      public My(String nane,int age)
    {
    this.name=name;
    this.age=age;
    }
    nane!=name  但愿是笔误-_-!