Scala类中主构造器如不指定访问修饰符,默认访问权限为public,生成公有构造器;在类中定义主构造器的访问修饰符为private,生成私有构造器,只允许类本身访问,防止外部实例化。
(1)公有构造器
在class Teacher类中的主构造器默认访问权限为public。
在Windows系统中选择“开始”→“运行”命令,在“运行”窗口中输入CMD命令,进入DOS环境,在命令行提示符中进入OOPInScala的目录,在DOS提示符中输入:scalac OOPInScala.Scala,编译生成JVM字节码,在DOS提示符下使用Javap-private Teacher查看Teacher类的定义,此时class Teacher类中主构造器访问权限为公有:public com.dt.sca⁃la.oop.Teacher(java.lang.String,int)。可以通过val p=new Teacher("Spark",5)来实例化对象,如下所示:
(2)私有构造器(www.daowen.com)
在class Teacher类中定义主构造器的访问权限为private,只允许class Teacher自己访问,不允许外部访问,构造成为私有构造器。
将class Teacher类编译生成JVM字节码,在DOS提示符下使用Javap⁃private Teacher查看Teacher类的定义,class Teacher类中主构造器访问权限为私有,如下所示:
这样,class Teacher类的主构造器是私有构造器,直接通过val p=new Teacher("Spark",5)来调用会报错,提示没有足够的参数来调用构造器,而class Teacher类的辅助构造器是公有方法,可以通过val p1=new Teacher("Spark",5,"male"),传入3个参数给辅助构造器进行对象实例化。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。