java中使用new关键字创建对象的时候,构造方法上的修饰符起什么作用?
1,限定可以创建对象的位置
使用public 修饰,new对象时,可以在任何包下的任何类中。
使用protected修饰,只能在当前类,或者同一包下创建对象。
使用private修饰,只能在当前类中创建对象。
2,使用不同修饰符修饰构造函数有啥作用?
public修饰,不限定对象啥时候在什么地方创建。
protected修饰,限制对象创建范围到同一个包下,当需要外部去创建对象,但是又不想所有使用的地方都能创建。可以使用protected修饰构造方法
private修饰,只能本类创建对象,进一步缩小对象能创建的地方,如果外部需要使用类对象时,提供一个返回当前类对象的接口【必须是public,且 static 修饰】,设计模式之单例模式就是构造函数私有化。
对于类的设计者来说,如果想要类对象的创建由自己把控,可以使用private构造函数,或者 protected 构造函数。