Java 如何在main方法中调用构造函数?

Java 如何在main方法中调用构造函数?,java,Java,我正在写一段代码,在它的主要方法中我创建了一个对象。但我不知道如何调用它的构造函数。 这是我的密码: //This class calculate the greatest common divisor of two number import static java.lang.Math.min; public class Calculate2 { private int num1,num2; public Calculate2(int num1 , int num2)

我正在写一段代码,在它的主要方法中我创建了一个对象。但我不知道如何调用它的构造函数。 这是我的密码:

//This class calculate the greatest common divisor of two number 
import static java.lang.Math.min;
public class Calculate2
{
    private int num1,num2;
    public Calculate2(int num1 , int num2)
    {
        this.num1=num1;
        this.num2=num2;
    }
    public static void main(String[] args) 
    {
       Calculate2 gcd = new Calculate2();
       gcd.GCD();
    }
    public void GCD()
    {
        int min_num;
        int greatestcommondivisor=0;
        min_num = min(num1,num2);
        for(int commondivisor=1;commondivisor <= min_num;commondivisor++)
        {
           if(num1%commondivisor==0 &&  num2%commondivisor==0)
           {
               greatestcommondivisor=commondivisor;
           }
           commondivisor++;
        }
        System.out.println(greatestcommondivisor);
    }//End of the method gcd


}//End of the class calculate2
//此类计算两个数的最大公约数
导入静态java.lang.Math.min;
公共类计算器2
{
私有整数num1,num2;
公共计算器2(整数m1,整数m2)
{
这个。num1=num1;
这个。num2=num2;
}
公共静态void main(字符串[]args)
{
Calculate2 gcd=新Calculate2();
gcd.gcd();
}
公共无效GCD()
{
int min_num;
int greatestcommondivisior=0;
最小值=最小值(num1,num2);

for(int commondivisior=1;commondivisior类中的构造函数在我们声明对象时被正确调用

Calculate2 obj = new Calculate2(1,2);

构造函数与类共享相同的名称,因此当您创建一个新对象(
gcd
)时,如下所示

Calculate2 gcd = new Calculate2();
您已经调用了类的默认构造函数
Calculate2

但从那时起,您已使用参数声明了一个构造函数:

public Calculate2(int num1 , int num2)
这意味着类的构造函数需要在其中包含两个参数
num1
num2
,因此必须像这样调用它

Calculate2 obj_gcd = new Calculate2(100,200);
  • 您创建了自己的构造函数,这意味着编译器不会添加默认构造函数
  • 另外,您的构造函数看起来像

    public Calculate2(int num1, int num2) {
    }
    
    这意味着它需要两个
    int
    参数,因此您需要像这样向它传递一些
    int

    new Calculate2(42,24);
    

  • 您的构造函数是parameteris构造函数

      You must pass value to parameteris  Construcor
      You Can Call With differnt of type
    
      int i=10;
      int j=5;
      Calculate2 gcd = new Calculate2(i,j);
    


    您必须将2
    int
    s传递给构造函数,因为这是您定义它的方式。这类似于调用常规方法。当我将2 int传递给构造函数时,会出现另一个错误!不,不是这样,我只是尝试了您的代码。我想从用户处获得num1和num2,而不是一些结果!然后请用户提供一些值,以便您可以将它们用作构造函数uctors参数。请看一个例子,看看如何操作。但是,
    Calculate2
    没有默认的构造函数,因为OP已明确定义了另一个构造函数。@arshajii:耐心是美德伴侣…..等待人们更新他们的答案….如果在前5分钟后你觉得它不正确,请发表评论(通过亲身经历了解到这一点)!!:)
      new  Calculate2(10,20);
    
       Calculate2 gcd = new Calculate2(10,20);
    
        Calculate2 gcd;
        gcd = new Calculate2(15,20);