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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥