Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Java初学者):构造函数没有参数?_Java_Constructor_Arguments - Fatal编程技术网

(Java初学者):构造函数没有参数?

(Java初学者):构造函数没有参数?,java,constructor,arguments,Java,Constructor,Arguments,我试图做一个简单的程序,取三个数字的平均值,但我得到一个错误,说 “类平均值中的构造函数平均值不能应用于给定类型; 必需:无参数 找到:int,int,int“ 这是我的密码: public class ave { public static void main(String args[]) { average object = new average(3,4,6); } } 这是我的构造函数代码 public class average { public double takeavera

我试图做一个简单的程序,取三个数字的平均值,但我得到一个错误,说

“类平均值中的构造函数平均值不能应用于给定类型; 必需:无参数 找到:int,int,int“

这是我的密码:

public class ave {
 public static void main(String args[]) {
average object = new average(3,4,6);
 }
}
这是我的构造函数代码

public class average {
public double takeaverage(double first, double second, double third) {
 double ave = (first + second + third)/3;
 System.out.println(ave);
 return ave; } 
} 

构造函数的名称应该与类名相同,并且没有返回类型。 请尝试以下操作:

public class ave {
 public static void main(String args[]) {
Average object = new Average(3,4,6);
 }
}


public class Average {
    public Average(double first, double second, double third){
        double ave = (first + second + third)/3;
        System.out.println(ave);
    } 
} 
public class ave {
 public static void main(String args[]) {
Average object = new Average();
 double Avg = object.takeaverage(3,4,6);
 }
}


public class Average {
public double takeaverage(double first, double second, double third) {
 double ave = (first + second + third)/3;
 System.out.println(ave);
 return ave; } 
} 
如果您不想更改类
Average
的代码,则只需从该类调用方法,如下所示:

public class ave {
 public static void main(String args[]) {
Average object = new Average(3,4,6);
 }
}


public class Average {
    public Average(double first, double second, double third){
        double ave = (first + second + third)/3;
        System.out.println(ave);
    } 
} 
public class ave {
 public static void main(String args[]) {
Average object = new Average();
 double Avg = object.takeaverage(3,4,6);
 }
}


public class Average {
public double takeaverage(double first, double second, double third) {
 double ave = (first + second + third)/3;
 System.out.println(ave);
 return ave; } 
} 

构造函数必须与类具有相同的名称

您必须创建:

public average(double a, double b, double c)

实际上,类中唯一存在的构造函数是没有参数的构造函数,它是自动创建的。

您尚未定义接收这些参数(3、4、6)的构造函数方法。 您必须创建一个构造函数方法,如下所示:

public class average {
public double result

public average(int a, int b, int c){
this.result=this.takeaverage(double(a),double(b),double(c))
}
public double takeaverage(double first, double second, double third) {
 double ave = (first + second + third)/3;
 System.out.println(ave);
 return ave; } 
} 

如果只想取3个数字的平均值,则无需创建平均对象即可。我已将其展示如下:

import java.util.*;
public class Ave {
    public static void main(String[] args){
        double number1, number2, number3;
        Scanner console = new Scanner(System.in);
        System.out.println("Enter number 1:");
        number1 = console.nextDouble();
        System.out.println("Enter number 2:");      
        number2 = console.nextDouble();
        System.out.println("Enter number 3:");
        number3 = console.nextDouble();
        double average = (number1 + number2 + number3)/3;
        System.out.println("The average is: " + average);
    }
}
上面的程序要求用户输入3个数字并打印出它们的平均值。请注意,它仍然有点冗余。您还可以对其进行修改,以询问任何数字的平均值,如下所示:

import java.util.*;
public class Ave {
    public static void main(String[] args){
        int howMany;
        double sum = 0.0;
        double number, average;
        Scanner console = new Scanner(System.in);
        System.out.println("How many numbers do you want to take average of:");
        howMany = console.nextInt();
        int count = 1;
        while(count <= howMany){
            System.out.println("Enter number " + count);
            number = console.nextDouble();
            sum += number;
            count++;
        }
        average = sum/howMany;
        System.out.println("The average is: " + average);
    }
}
import java.util.*;
公共级大道{
公共静态void main(字符串[]args){
int有多少个;
双和=0.0;
双倍数,平均数;
扫描仪控制台=新扫描仪(System.in);
System.out.println(“您希望取多少个数字的平均值:”);
howMany=console.nextInt();
整数计数=1;
虽然(count您已经创建了“takeaverage”方法,但还没有调用它。也许您应该使用setter或使用构造函数传递三个数字并初始化,然后只调用“takeaverage”方法来获得一个双精度值,并将平均值分配给该双精度变量

您需要使用默认构造函数并从“average”类创建对象。下面是一个非常简单的解决方案:

public class average {
     public double takeaverage(double first, double second, double third) {
         double ave = (first + second + third)/3;
         System.out.println(ave);
         return ave; 
     } 
} 




 //main class
    public class ave{
      public static void main(String []args){
            average object = new average();
            object.takeaverage(3,4,6);
         }

    }

object.takeaverage(3,4,6);
这是一种方法,请确保您的类名使用Pascal大小写(即Average,AverageClass,这对于平均三个枚举的类来说确实是很长的名称),非常感谢!