0

我正在尝试在 java 中实现构造函数重载。我认为一切都很完美,但它显示了这个错误:

Main.java:28:错误:类 Tryme 中的构造函数 Tryme 不能应用于给定类型;

   Tryme s=new Tryme(1,1,2015);
           ^   required: no arguments   found: int,int,int   reason: actual and formal argument lists differ in length 1 error .

这是我的代码:

      import java.util.*;

      class Try1 {
        int day,month,year;``
        public void Try1() {
          day = 1;
          month = 1;
          year = 2015;
        }

        public void Try1(int d,int m,int y) {
          day = d;
          month = m;
          year = y;
        }

        public void seter() {
          System.out.println(day+"/"+month+"/"+year);
        }
      }

      class MDate {
        public static void main(String []str) {
          Try1 t = new Try1();
          t.seter();
          Try1 s=new Try1(1,1,2015);
          s.seter();
        }
      }
4

2 回答 2

1

构造函数没有使用任何显式返回类型,但您使用 void 作为返回类型。您必须从构造函数中删除 void 。

使用如下构造函数:

       public Try1() {
           day = 1;
           month = 1;
           year = 2015;
       }

       public Try1(int d, int m, int y) {
           day = d;
           month = m;
           year = y;
      }
于 2016-01-16T08:40:57.683 回答
0

构造函数语法不同于任何其他方法

普通方法有返回类型,构造函数没有返回类型

所以你的构造函数的正确语法是(请不要没有返回类型,也是void返回类型

public Try1() {
    day = 1;
    month = 1;
    year = 2015;
}

public Try1(int d,int m,int y) {
    day = d;
    month = m;
    year = y;
}
于 2016-01-16T08:52:41.233 回答