在Java中定义构造函数

时间:2015-10-23 07:35:44

标签: java

我想知道如何在Java中定义构造函数。 我开始编写一段代码,但是我收到了错误。

package xyz;

public class ConstructorExample {

    public static void main(String[] args) {

        public ConstructorExample(int x,int y){
//          private double x,y;
        }   

    }

}

我可以在main中使用main编写构造函数,还是必须有另一个类?感谢。

4 个答案:

答案 0 :(得分:2)

您无法在方法中定义构造函数。你必须像在类体中的任何其他方法一样声明它。

package xyz;

public class ConstructorExample {

    public ConstructorExample(int x,int y){
//      private double x,y;
    }   
    public static void main(String[] args) {

    }

}

答案 1 :(得分:2)

你可以为Main写一个构造函数。任何类,枚举和抽象类都可以有一个构造函数。

简单使用

public Main(){
    //Constructor code here...
}

然后调用main只使用:     Main main = new Main ();

注意:private,protected和public修饰符可以与构造函数一起使用。

您的代码中出现错误的原因

您尝试在方法中创建方法。

public static void main(String[] args){

    public ConstructorExample(int x,int y){
        //private double x,y;
    }   

}

您尝试在main方法中创建构造函数,这是一种illigal语法。正确的方法是:

class ConstructorExample {

    //This is the constructor
    public ConstructorExample(){
        System.out.println("Constructor called");
    }

    public static void main(String [] args){
        ConstructorExample example = new ConstructorExample();//This calls the constructor when creating the class
    }
}

答案 2 :(得分:1)

你的constuctor必须像声明的任何其他方法一样(但它必须被调用为相同的类名,并且不提供任何返回):

public class ConstructorExample {
    //this is your class fieald
    private double x,y;

    //here is the constructor
    public ConstructorExample(int x,int y){
       //set the class field's values, via this (means class), 
       //because the arg names is the same as fields names
       this.x = x;
       this.y = y;
    } 

    public static void main(String[] args) { 
        //here is how you can create a class instance inside the main method 
        ConstructorExample example = new ConstructorExample(1,1); 
    }    
}

此外,如果你还没有定义任何构造函数,java将添加默认值,不带参数。所以它看起来像:

public class ConstructorExample {
    public static void main(String[] args) { 
        //here is how you can create a class instance inside the main method 
        //with the default constructor
        ConstructorExample example = new ConstructorExample(); 
    }    
}

如果您有许多构造函数,那么您可以再次通过this调用另一个,例如:

public class ConstructorExample {
    //this is your class fieald
    private double x,y;

    //here is the constructor with the single argument
    public ConstructorExample(int x){
       this.x = x;
    } 

    //here is the constructor with 2 arguments
    public ConstructorExample(int x,int y){
       //you can call another constructor with the arguments
       this(x);
       this.y = y;
    } 
    public static void main(String[] args) { 
        //here is how you can create a class instance inside the main method 
        ConstructorExample example = new ConstructorExample(1,1); 
    }    

}

答案 3 :(得分:1)

  

我想知道如何在Java中定义构造函数。我已开始   写一段代码,但我得到错误。

错误是因为构造函数是在main()方法中定义的。需要搬到外面。你可以从main方法调用。

  

Java构造函数是在对象时调用的特殊方法   被实例化。换句话说,当您使用new关键字时。该   构造函数初始化新创建的对象。

package xyz;

public class ConstructorExample {

    private int x;
    private int y;

    public ConstructorExample(int x,int y){
      this.x = x;
      this.y = y;
    }  

    public static void main(String[] args) {
      ConstructorExample example = new ConstructorExample(1,1); 
    }

    }