第二章 scala语言–Object、class
前言
今天是学习Scala第二天打卡,本文就就今天的学习做了一些记录。
开始代码之旅
1.object定义一个main方法
代码如下(示例):
object People {
def main(args: Array[String]): Unit = {
println("这是一个main方法!!")
}
}
- main方法种没有static,和java不一样,且main方法写在object中才生效
- object 相当于Java中的静态代码块,单例的
- object 存放静态的field和method
- object 有apply()方法,伴生类(参数…)会调用这个方法,创建一个伴生类对象
2.变量、常量
代码如下(示例):
Integer num = 0 //报错
var a=3 //变量
a=4 //赋值不报错
val b=4 //常量
b=5 //赋值报错
- scala使用var定义变量;使用 val定义常量,取代了final
- scala不能像Java那样用基本类型及其包装类进行修饰
3.class、object
代码如下(示例):
object People {
private val name = "object:zhangsan"
def main(args: Array[String]): Unit = {
var p1 = new People()
p1.printMsg()
println(p1.name)
}
}
class People{
private val name = "class:zhangsan"
def printMsg(): Unit = {
println(s"name: ${People.name}")
}
}
上面代码的执行结果:
从运行结果看:class与object互相可以访问彼此私有的内容。
4.构造器
代码如下(示例):
class People1(sex:String){
private val name = "ddddd"
println(name)
var a: Int = 3
// private val p1 = new People1("女") //
println(s"people$a....")
def printMsg(): Unit = {
println(s"sex: ${People1.name}")
}
}
object People1{
private val name = "ccccccc"
def main(args: Array[String]): Unit = {
var p1 = new People1("男");
p1.printMsg()
}
}
- 类里,裸露的代码是默认构造中的。有默认构造
- 类名构造器中的参数就是类的成员属性,且默认是val类型,且默认是private
- 只有在类名构造其中的参数可以设置成var,其他方法函数中的参数都是val类型的,且不允许设置成var类型
总结
以上就是今天要讲的内容,本文简单列举的学习scala过程中的一些例子。并得到以下总结:
-
在Object中的内容都是静态的 单例的 安全的 高效
程序的入口:main也是写在object中,且在object中是可以执行的
-
class中的内容就是普通内容了
main方法写在class中就是一个普通方法,需要new 这个对象去调用该方法
-
在同一个文件中时,object与class名字一致,两者互为伴生关系
(object)对象是(class)类的伴生对象 (class)类是(object)对象的伴生类 互相可以访问彼此私有的内容
-
作用:将静态与非静态的内容分了开来