java - 如果存在用户定义的构造函数,则无法使用默认构造函数

标签 java debugging exception constructor

如果已经定义了用户定义的构造函数,我们似乎被迫使用用户定义的构造函数,并且无法使用已提供的默认构造函数。

如果没有提供用户定义的构造函数,我可以这样做(默认构造函数)

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/

相关文章:

c++ - 是否可以抛出 C++ 标准库中定义的异常?

debugging - 为什么不教学生使用调试器?

java - 如何远程调用Eclipse中正在调试的小程序的函数?

c++ - 我可以设置一个由 gdb 启动和附加的 linux 程序吗?

java - 加密 XML 后丢失 x 509 证书信息,冗余命名空间

C++ static_cast 的正确方法

exception - Phobos(和/或 Tango)有一组预定义的异常类型吗?

java - RxJava线程切换

java - 使用 PHP 从 Java 客户端上传文件不起作用

java - 链接列表 getNext() 和 while(next!= null );问题