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 
 
posted on 2019-03-10 22:02  飞小白  阅读(149)  评论(0编辑  收藏  举报