public class Sample {
private int x;
public Sample(){
x=1;
}
public void Sample(double f){
this.x=(int)f;
}
public int getX(){
return x;
} public static void main(String[] args) {
Sample s=new Sample(5.2);
System.out.println(s.getX()); }}
老报错说没有定义构造方法,构造方法怎么个定义?

解决方案 »

  1.   


    public Sample(double f){
      x = f;
    }
      

  2.   

    Sample(){
    x=1;
    } 构造函数无访问控制
      

  3.   

    public void Sample(double f){ 
    this.x=(int)f; 
    } 改成
    public Sample(double f){ 
    this.x=(int)f; 

      

  4.   

    public void Sample(double f){ 
    this.x=(int)f; 

    是一个方法,不是构造方法,去掉void试试,应该行的!!
      

  5.   

    因为用了Sample s=new Sample(5.2); 还缺Sample(double f){}这个构造函数
      

  6.   

    public void Sample(double f){  //这个是普通方法,不是构造方法,构造方法没有void
    this.x=(int)f;

      

  7.   

    public Sample(double f){ 
    this.x=(int)f; 
    }
      

  8.   

    你把Sample(){ }方法的public 去掉,构造函数是不能加访问权限的。
    还有那个public void也去掉
      

  9.   

    public class Sample { 
    private int x; 
    public Sample(){ 
    x=1; 

    public void Sample(double f){ 
    this.x=(int)f; 

    public int getX(){ 
    return x; 
    }  public static void main(String[] args) { 
    Sample s=new Sample(); 
    System.out.println(s.getX());  } 
    } 或者:public class Sample { 
    private int x; 
    public Sample(){ 
    x=1; 

    public Sample(double f){ 
    this.x=(int)f; 

    public int getX(){ 
    return x; 
    }  public static void main(String[] args) { 
    Sample s=new Sample(5.2); 
    System.out.println(s.getX()); 

      

  10.   

    你是没定义那种Sample(5.2);构造方法嘛
      

  11.   

    public sample(int f)
    {
      this.f = x;
    }
      

  12.   

    我知道没有定义,但我不明白什么叫定义,把那个void去了就算定义?小弟确实不明白
      

  13.   

    Sample(){ 
    x=1; 

    Sample(double f){ 
    this.x=(int)f; 
    } 构造方法,就这么定义,没有为什么,是sun公司定的。
      

  14.   

    构造方法没有返回值的,你主函数里又要调用一个有double参数的构造方法,没有这样一个方法
      

  15.   

    构造方法不能有返回值
    public void Sample(double f){ 
    this.x=(int)f; 

    应写为
    public Sample(double f){ 
    this.x=(int)f; 

    就好了!
      

  16.   

    什么是构造方法?概念首先搞清楚。你new一个对象,参数是double的,而你的class里面没有
    定义这样的方法。
      

  17.   

    new其实调用的构造函数,当一个类被定义后,就有一个对应的无参数构造函数,如果你重写了构造函数,以前那个默认的无参数构造函数将会被覆盖,要想使用无参数构造函数必须显示地声明。
    Sample s=new Sample(); --------->  这是new的无参数构造函数
    Sample s=new Sample(5.2); -------->  这是new的有参数构造函数楼主加油!