随笔 - 10,  文章 - 0,  评论 - 0,  阅读 - 1996

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   飞小白  阅读(149)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示