zoukankan      html  css  js  c++  java
  • 快学Scala-08--对象

    1.类的定义和对象的创建

    没有修饰,默认public
    class Person{
        private var id = 0
        var name= "tom"
        def setId(id:Int) = this.id = id
        def getId() = this.id
    }
    var p = new Person()
    p.name ="Jack"
    p.name
    res0: String = Jack
    p.getId()
    p.setId("sandy")
    p.name
    res1: Int = 0
    res2: Unit = ()
    res3: Int = 4
     

    2.类的编译和查看

    可以使用javap xxx.class 来看一个类的大致结构
    而且要说明的是,共有变量会被默认自动创建Get  和Set方法

    3.apply方法

     
    var mess="hello"
    for(c <- mess)println(c)
    mess.apply(3)
    mess(3)  //apply 的特殊之处在于可以简化到不写 不用。来调用,默认调用
    res1: Char = l
    res2: Char = l
     
     
    class Person2{
        def apply(name:String) = println("hello"+name)
    }
    var pp = new Person2()
    pp.apply("tom")
    
    pp: Person2 = Person2@4ee2a2ac
    hellotom
    res0: Unit = ()
     
     
    4.构造方法
    class Person2{
        var id =0
        var name="hello"
        def this(name:String){  //必须使用this,因为Scala 不能用类名来作为构造方法名
            this() //必须写这一句,因为这一句是默认构造,我们不能定义了构造以后,不管午餐构造
           this.name = name 
        }
    
    }
    var pp = new Person2("Jack")
    pp.name
    
    pp: Person2 = Person2@1f546f11
    res0: String = Jack

    5.主构造

    class Person(var id:Int=0,var name:String){
    }
    var p = new Person(1,"Jack");
    p.id
    需要说明是是 class Person(var id:Int=0,var name:String)
    var 是并不是必须的,但是有了var 就意味着会在类中自动产生public 变量id 
    要是没有并不会编译报错,但是只是有了一个构造方法Person( id:Int,name:String){}   (Java的写法,这种写法不对)
     
     
    《快学Scala》高清中文PDF+源代码
    提取码:an5d 
     
  • 相关阅读:
    解决span中的内容不换行
    javascript中apply、call和bind的区别
    vuex及其属性应用
    55.动态加载Html
    58.圆角图片
    57.动态添加子View(Java/XML两种方式)
    56.Java与js交互
    59.仿微信的图片浏览器
    64.判断当前线程是否是主线程
    61.自定义Indicator
  • 原文地址:https://www.cnblogs.com/feixiaobai/p/0a861d3420eac5a99acce62c2a278e93.html
Copyright © 2011-2022 走看看