-1.class类
和Java中类是一样的
-2.Object对象
类比 和Java单例对象
main方法运行在此处
-3.trait
类比 Java中接口Interface
隐式转换implicit
implicit
隐式的,隐藏的
偷偷摸摸
关键词:
修饰class,修饰def,修饰变量,修饰参数
案例1:
/**
*创建一个类
* -1.属性field,attribute:名词
* -2.方法method/函数function:动词
*/
class People {
/**
* 属性定义
*/
//当属性使用var声明的时候,编译的时候,会生成Getter和setter方法
var name:String = _
//当属性使用val声明的时候,编译的时候,会生成Getter方法
val age:Int = 17
/**
* 方法定义
*/
def watchFootBall(teamName:String):Unit= {
println(s"$name is watching match of $teamName")
}
def sayHello(name:String):String = {
s"Hello $name"
}
}
object SimpleObjectDemo {
def main(args: Array[String]): Unit = {
//创建一个对象
val people = new People()
//设置名称
people.name = "huadian"
//获取属性的值
println(s"name is ${people.name}")
println(s"age is ${people.age}")
people.watchFootBall("Chelse")
println(people.sayHello("laosun"))
}
}
* 在Scala中构造函数有2种
* 构造函数的功能:在创建类的对象的时候,进行初始化操作
* -1.主构造函数
* 只有一个
* 直接 紧跟 在 类class后面,如果没有属性的话,可以省略()
* -2.附属构造函数
* 可以有很多
*
* 一个.scala文件中,一个类的名字和对象的名字一致,
* 互为伴生对象和伴生类
* 可以互相访问私有的属性和方法
//伴生类
class People(val name:String,val age:Int){
var school:String = "huadian"
private val money:Double = 10000000.0
//定义附属构造函数
def this(_name:String