1. 什么是类class? 类是属性和行为的集合。
(1) 属性也叫成员变量:名词,用来描述事物的外在特征
(2) 行为也叫成员方法:动词,表示事物能做什么
[举例]:学生有姓名和年龄这些是属性,学生要学习,要吃饭这些是行为。
创建类和对象
1. 使用IDEA创建一个scala项目,并创建object类。
2. 设置项目名,包名,项目地址。注意不要使用中文,空格,特殊符号作为名字及路径名。
3.this在类内部表示当前对象,我们可以利用这个特点实现对象方法的链式调用
4.辅助构造函数的作用是支持更多的创建对象的方式。
代码演示:
class Student(var name:String,var age:Int) {
println("构造函数被调用")
def sayHi():Unit = {
println(s"我是${name},我今年${age}岁")
}
// 辅助构造函数
// (1)它的名字就是this
// (2) 它内部的第一句代码就必须是调用 主构造函数 this("无名氏",0)
def this() = {
this("无名氏",0)
println("辅助构造函数1被调用...")
}
def this(name:String) = {
this(name,0)
println("辅助构造函数2被调用")
}
}
object practice33 {
def main(args: Array[String]): Unit = {
// 创建一个学生对象
// val stu1 = new Student("小花",18)
// 调用对象的方法
// stu1.sayHi()
// stu1.age = 19
// 调用对象的方法
// stu1.sayHi()
// 这里没有设置参数,它会调用辅助构造函数
// val stu2 = new.Student()
// stu2.sayHi()
// 这里设置了一个参数,它会调用辅助构造函数
val stu3 = new Student("小明")
stu3.sayHi()
}
}
class也可以放在object里面使用,song()方法只能在class类里面才能使用
object practice34 {
class Student(var name:String,var age:Int) {
private def song(): Unit = {
println("我在唱歌....")
}
def sayHi(): Unit = {
println(s"我是${name},我今年${age}")
song()
}
}
def main(args: Array[String]): Unit = {
val stu3 = new Student("小明",18)
stu3.sayHi()
}
}
用 object 关键字来创建一个单例对象。单例对象在整个应用程序中只有一个实例,适合用于存放工具方法、常量或共享状态。
1. 通过object关键字创建的是一个对象,不是一个类型。
2. 不能使用new关键字:声明单例对象的时候不可以使用new关键字。
3. 不能传递参数:单例对象无法传递参数。
object Tools {
val PI = 3.14
def double(n:Int):Int= {
n*2
}
}
object practice35 {
def main(args: Array[String]): Unit = {
val rst = Tools.PI * Tools.double(2) // 12.56
println(s"rst = ${rst}")
}
}