我想知道如何在Java中定义构造函数。 我开始编写一段代码,但是我收到了错误。
package xyz;
public class ConstructorExample {
public static void main(String[] args) {
public ConstructorExample(int x,int y){
// private double x,y;
}
}
}
我可以在main中使用main编写构造函数,还是必须有另一个类?感谢。
答案 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);
}
}