如果已经定义了用户定义的构造函数,我们似乎被迫使用用户定义的构造函数,并且无法使用已提供的默认构造函数。
如果没有提供用户定义的构造函数,我可以这样做(默认构造函数)
Student s = new student() ;
一旦提供了用户定义的构造函数,我就不能再这样做了,这与 C++ 不同,在 C++ 中我仍然可以使用提供的构造函数
我定义了构造函数但无法执行的代码示例 Student s = new student()
package javaapplication1;
import java.util.*;
import java.io.*;
import java.lang.*;
public class JavaApplication1
{
public static void main(String[] args)
{
Student s = new Student(); // will get compiler error
System.out.println(s.getname());
}
public static class Student
{
private String name;
private int mark;
public Student(String namevalue , int markvalue) // user defined constructor
{
name = namevalue;
mark = markvalue;
}
public String getname()
{
return name;
}
public void setname(String value)
{
name = value;
}
}
}
我的分析正确吗?为什么会这样???
最佳答案
您需要了解,如果您未能提供自己的构造函数,则默认构造函数仅由 Java 编译器提供。一旦这样做,您还需要提供一个无参数构造函数。这会让新程序员感到困惑,但如果你仔细想想,它实际上很有意义 - 你真的希望 Java 为你创建东西而不需要你控制吗?
关于java - 如果存在用户定义的构造函数,则无法使用默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693299/