第六篇,类
-
类的方法默认是公有的
-
类并不声明为public,一个scala源文件可以包含多个类,所有这些类都具有公有可见性
-
和java一样,方法可以访问该类的所有对象的私有字段
-
因为other同样也是Counter对象,所以访问other.value是合法的
-
可以定义更加严格的访问限制,这样other.value将不被允许
-
使用@BeanProperty注解自动生成java属性的getXXX/setXXX方法。个人认为在反射的时候有用,约定(javaBean规范)
-
可以有任意多的构造器
-
除了主构造器之外,类可以有任意多的辅助构造器
-
辅助构造器的名称为this,每一个辅助构造器都必须以一个对先前已定义的其他辅助构造器或主构造器的调用开始
-
没有显式定义主构造器则自动拥有一个无参的主构造器
-
在scala中,每个类都有主构造器。主构造器并不以this方法定义,而是与类定义交织在一起
-
主构造器的参数被编译成字段,值为初始化成构造器时传入的参数
-
主构造器会执行类定义中的所有语句
-
类名之后没有参数,该类具有一个无参主构造器,这样一个构造器仅仅是简单的执行类中的所有语句而已
-
在主构造器中使用默认参数避免过多地使用辅助构造器
- 私有主构造器
- 可以在函数中定义函数,类中定义类