关于java构造方法中的一个问题

在Java中构造方法的名字需要与类名完全相同,但是在构造方法前加private、default、protected、public等,那这个方法还是构造方法吗?

算是构造方法,加这些修饰无非是规定了每个构造方法的生效范围

不管加什么修饰符,构造方法本身当然还是构造方法
不同的只是在什么地方能够调用它
如果构造方法类型是private,那么类就只能在内部被实例化,不可以在外部被实例化,单例模式通常会这样干

是的,加上访问修饰符后的方法仍然是构造方法。访问修饰符只是用来指定该构造方法的访问级别。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/374732
  • 这篇博客也不错, 你可以看下Java中级——private、default和protect详解
  • 除此之外, 这篇博客: 【java基础】访问修饰符private、default(默认不写) 、protected、public区别中的 Java基础 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符:
    1、private,私有的,被private修饰的类、方法、属性、只能被本类的对象所访问。
    我什么都不跟别人分享。只有自己知道。
    2、default,默认的,在这种模式下,只能在同一个包内访问。
    我的东西可以和跟我一块住的那个人分享。
    3、protected,受保护的,被protected修饰的类、方法、属性、只能被本类、本包、不同包的子类所访问。
    我的东西我可以和跟我一块住的那个人分享。另外也可以跟不在家的儿子分享消息,打电话
    4、public,公共的,被public修饰的类、方法、属性、可以跨类和跨包访问。
    我的东西大家任何人都可以分享。

    在这里插入图片描述

    修饰一个java文件下的同级类,只能用public 或默认不写即default修饰,而且只能有一个public修饰的类

    public 可以修饰 类 成员变量 成员方法 构造方法
    default 可以修饰 类 成员变量 成员方法 构造方法
    protected 可以修饰 成员变量 成员方法 构造方法
    private 可以修饰 成员变量 成员方法 构造方法
    abstract 可以修饰 类 成员方法
    static 可以修饰 成员变量 成员方法
    final 可以修饰类 成员变量 成员方法
    注意:final修饰的类不能被继承,修饰的变量为常量,修饰的成员方法不能被重写

    归纳一下:在日常开发过程中,编写的类、方法、成员变量的访问
    A:要想仅能在本类中访问使用private修饰
    B:要想本包中的类都可以访问除了private修饰符,其它都可以
    C:要想本包中的类与其他包中的子类可以访问使用protected修饰
    D:要想所有包中的所有类都可以访问使用public修饰。
    注意:如果类用public修饰,则类名必须与文件名相同。一个文件中只能有一个public修饰的类。