zoukankan      html  css  js  c++  java
  • 7、scala面向对象编程之类

    1、  定义一个简单的类

    2、getter与setter

    3、自定义getter与setter方法

    4、仅暴露field的getter方法

    5、private[this]的使用

    6、Java风格的getter和setter方法

    7、辅助constructor

    8、主constructor

    9、内部类

    1、  定义一个简单的类

      定义类和创建类的对象,并调用其方法

      

    2、getter与setter

      定义不带private的var field,scala自动生成getter和setter方法。

      使用private修饰,则生成的getter和setter也是private的。

      定义val field 则只会生成getter方法。

      不希望生成setter和getter方法,则将field声明为private[this]。

      调用getter和setter方法,分别叫做name和name_=。

       

    3、自定义getter与setter方法

      如果希望能够自己对getter和setter方法进行控制,则可以自定义getter和setter方法,自定义setter方法的时候一定要注意scala的语法限制,签名、=、参数之间不能有空格。

      

    4、仅暴露field的getter方法

      如果希望能够仅仅暴露一个getter方法,并且还能通过某些方法更改field的值,那么需要综合使用private以及自定义getter方法。此时field是private的,对外界没有暴露,自己可以实现修改field值的方法,可以覆盖getter方法。

      

    5、private[this]的使用

      在类的方法中,可直接访问类的其他对象的private field,有些情况下,不希望field被其他对象访问到,那么可以使用private[this],意味着对象私有的field,只有本对象内可以访问到。

      

      

    6、Java风格的getter和setter方法

      Scala的getter和setter方法的命名与java是不同的,是field和field_=的方式。如果要让scala自动生成java风格的getter和setter方法,只要给field添加@BeanProperty注解即可。此时会生成4个方法,name:String、name_=(newValue:String):Unit、getName():String、setName(newValue:String):Unit。

      

      

    7、辅助constructor

      Scala中,可以给类定义多个辅助constructor,类似于java的构造函数重载。辅助constructor之间可以相互调用,而且必须第一行调用主constructor。

      

    8、主constructor

      Scala中,主constructor是与类名放在一起的,与java不同。在类中,没有定义在任何方法或者代码块之中的代码,就是主constructor的代码,这点没java那么清晰。

      

      主contructor中还可以通过使用默认参数,给参数设置默认的值。

      

      如果主constructor传入的参数什么修饰都没有,比如name:String,那么类内部的方法是用到了,则会声明为private[this] name;否则没有该field,就只能被constructor代码使用而已。

       

    9、内部类

      Scala中,可以在类中定义内部类,与java不同,每个外部类的对象的内部类,都是不同的类。

       

  • 相关阅读:
    ArcGIS API ForJS 3.25开发总结(持续更新)
    geotools实现将shp导入mysql
    OL4如何以TMS服务调用WMTS服务的缓存切片
    PostGIS type: LINESTRING[2] We have a Multilinestring with 2 parts, can't use -S switch!解决方案
    OL4加载geowebcache 部署的离线切片
    geoserver发布自定义坐标系矢量切片(以北京54投影坐标系为例)
    geoserver使用sld(点通过svg填充)样式
    关于用geoserver进行切图自定义GridSet出现EPSG:2379: 0.0,0.0,-1.0,-1.0
    OL4通过ajax加载geoserver中WMS的GetFeatureInfo实现点击查询(解决跨域问题)
    作为一个GIS开发人员,你必须知道的坐标系那些事
  • 原文地址:https://www.cnblogs.com/haisongvip/p/9535124.html
Copyright © 2011-2022 走看看