小记--------scala 面向对象编程 之 类

定义类
 
创建类对象, 并调用其方法
 
Getter与setter 使用
    定义不带private的var field,此时scala生成的面向JVM的类时, 会定义为private的name,并提供public的Getter和setter方法、(也就是说,在scala中不论你定义不定义private var,scala都会自动帮你定义为private, 并为你提供公共的访问方式)
    定义不带private的val field则只会生成Getter方法(因为val是常量, 在定义好值后,值就不能改变,故scala不会提供setter方法)
 
    而如果在定义 var filed、val filed 的时候使用private修饰,则scala会自动生成的Getter和setter也均为private的     *****注意注意
 
     如果不希望scala自动帮生成Getter和setter方法,则需要将field声明为private[this]
 
调用Getter和setter的方法,  分别为 .field   和  .field_
 
private[this]的使用  (对象私有, 隔离级别最高)
     如果将field使用private来修饰, 那么代表这个field是类私有的, 在类的方法中个,可以直接访问类的其他对象的private field。
    如果不希望field被其他对象访问到,那么可以使用private[this],意味着对象私有的field,只有本对象内可以访问到。
 
scala 生成java风格的Getter和setter方法
    只需要给field添加@BeanProperty注解即可。
        此时会生成4个方法,name:String / name_=(newValue : String):Unit /  getName():String / setName(newValue : String):Unit
 
需要先导入包 import scala.reflect.BeanProperty
 
 
constructor构造函数
 
辅助constructor, 
 
主constructor 是与类名放在一起的
主constructor 还可以通过默认参数,来给参数默认的值
 
内部类
    scala中, 同样可以在类中定义内部类, 但是与java不同的是, 每个外部类的对象的内部类,都是不同的类。
 
 
posted @ 2020-04-11 22:14  二黑诶  阅读(240)  评论(0编辑  收藏  举报